当前位置: 首页 > news >正文

可以做蛋白三位结构图的网站服务区里可以做多少个网站

可以做蛋白三位结构图的网站,服务区里可以做多少个网站,简单html网页制作,网站群管理平台建设文章目录 #x1f50a;博主介绍#x1f964;本文内容起因resilience4j落地实现pom.xml依赖application.yml配置接口使用 hystrix 落地实现pom.xml依赖启动类上添加注解接口上使用 #x1f4e2;文章总结#x1f4e5;博主目标 #x1f50a;博主介绍 #x1f31f;我是廖志伟… 文章目录 博主介绍本文内容起因resilience4j落地实现pom.xml依赖application.yml配置接口使用 hystrix 落地实现pom.xml依赖启动类上添加注解接口上使用 文章总结博主目标 博主介绍 我是廖志伟一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。跑过十五公里、徒步爬过衡山、有过三个月减肥20斤的经历、是个喜欢躺平的狠人。 拥有多年一线研发和团队管理经验研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper)消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。 有过从0到1的项目高并发项目开发与管理经验对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。 有过云端搭建服务器环境自动化部署CI/CD弹性伸缩扩容服务器最高200台了解过秒级部署阿里云的ACK和华为云的云容器引擎CCE流程能独立开发和部署整个后端服务有过分库分表的实战经验。 经过多年在CSDN创作上千篇文章的经验积累我已经拥有了不错的写作技巧与清华大学出版社签下了四本书籍的合约并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的《Java项目实战—深入理解大型互联网企业通用技术》以及《解密程序员的思维密码–沟通、演讲、思考的实践》。具体出版计划会根据实际情况进行调整希望各位读者朋友能够多多支持 文章目录 博主介绍本文内容起因resilience4j落地实现pom.xml依赖application.yml配置接口使用 hystrix 落地实现pom.xml依赖启动类上添加注解接口上使用 文章总结博主目标 阅读前快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问以加深理解和吸收知识。 在这个美好的时刻本人不再啰嗦废话现在毫不拖延地进入文章所要讨论的主题。接下来我将为大家呈现正文内容。 本文内容 起因 阿里Sentinel团队不稳定超过了一半年的时间没有更新了虽然认为一个成熟产品没必要老更新在特定的阶段能完成他的历史使命就好并且sentinel开源这块依旧还在维护开发中。但是它是为了kpi开放出来的生怕哪天不维护了总感觉阿里是在培养用户习惯之后让你绑定阿里的生态再到阿里云割韭菜开源嘛本来也是无偿用人家没有义务像商业软件那样永久更新之前开源社区好几个作者就是因为不更新或者更新慢被别人喷不搞了所以个人觉得有必要多掌握几个限流熔断组件。 resilience4j落地实现 pom.xml依赖 如果你的springboot版本是2的使用以下依赖 !-- 熔断限流resilience4j-- dependencygroupIdio.github.resilience4j/groupIdartifactIdresilience4j-spring-boot2/artifactIdversion2.2.0/version /dependency如果你的springboot版本是3的使用以下依赖 !-- 熔断限流resilience4j-- dependencygroupIdio.github.resilience4j/groupIdartifactIdresilience4j-spring-boot3/artifactIdversion2.2.0/version /dependencyapplication.yml配置 resilience4j:retry: # 重试策略机制配置instances: # 定义多个重试策略实例retryApi: # 第一个重试策略重试名称max-attempts: 3 # 操作失败最大重试次数为3wait-duration: 1s # 每次重试等待时间1秒circuitbreaker:instances: # 定义多个断路器实例circuitBreakerApi: # 第一个断路器实例名称registerHealthIndicator: true # 配置健康指示器slidingWindowSize: 10 # 滑动窗口大小minimumNumberOfCalls: 5 # 最小调用次数permittedNumberOfCallsInHalfOpenState: 3 # 半开状态下允许的调用次数slidingWindowType: TIME_BASED # 滑动窗口类型automaticTransitionFromOpenToHalfOpenEnabled: true # 是否自动从开启状态转换为半开状态waitDurationInOpenState: 1s # 开启状态下等待时间failureRateThreshold: 20 # 失败率阈值失败率20%时断路器打开eventConsumerBufferSize: 10 # 事件消费者缓冲区大小ignoreExceptions: # 忽略的异常列表- java.io.IOExceptionratelimiter:instances: # 定义多个限流策略实例rateLimiterApi: # 第一个限流策略实例名称limitForPeriod: 10000 # 限制周期内的请求数量10000limitRefreshPeriod: 10s # 限制刷新周期10秒一个周期timeoutDuration: 500ms # 超时时间为0.5秒请求超过限制客户端立即收到超时响应不等待subscribeForEvents: AFTER_SUCCESS # 订阅事件类型eventConsumerBufferSize: 10 # 事件消费者缓冲区大小接口使用 Retry(name retryApi,fallbackMethod fallbackRedPackage) CircuitBreaker(name circuitBreakerApi,fallbackMethod fallbackRedPackage) RateLimiter(name rateLimiterApi,fallbackMethod fallbackRedPackage) PostMapping(value /redPackage) public Result redPackage(RequestBody RedPackegeRainVo redPackage) {//红包唯一标识\红包的keyString redPackageKey redPackage.getRedPackageKey();//用户id\用户tokenString userId redPackage.getUserId();//使用StringBuilder拼接字符串作为红包的键keyString redAppend StringUtil.StringAppend(RedPackageRainConstant.RED_PACKAGE_KEY, redPackageKey);//从redis缓存中获取红包池中的红包String partRedPackage redisUtil.leftPop(redAppend);//判断是否为空不为空进入后续流程为空直接返回if (StringUtils.isNotEmpty(partRedPackage)) {//将红包的key和用户的id作为存储redis缓存已抢红包池的键keyString redConsumeAppend StringUtil.StringAppend(RedPackageRainConstant.RED_PACKAGE_CONSUME_KEY, redPackageKey,:, RedPackageRainConstant.RED_PACKAGE_USER_ID, userId);//存入redis缓存并且设置过期时间使用了redis事务保证原子性因为操作简单、依赖关系简单使用使用redis事务比使用 Lua 脚本更适合当前场景redisUtil.multiStr(redConsumeAppend,partRedPackage,1,TimeUnit.DAYS);//自适应根据当前机器的线程数适配核心线程数和最大线程数全局线程池ThreadPoolExecutor.getThreadPoolExecutor().execute(new Runnable() {Overridepublic void run() {ConcurrentHashMap concurrentHashMap pool.acquire(); // 从对象池中获取一个ConcurrentHashMap实例concurrentHashMap.put(RedPackageRainConstant.RED_PACKAGE_KEY,redPackageKey);concurrentHashMap.put(RedPackageRainConstant.RED_PACKAGE_USER_ID,userId);concurrentHashMap.put(RedPackageRainConstant.RED_PACKAGE_VALUE,partRedPackage);//将ConcurrentHashMap对象转换成字符串。String convertToString StringUtil.convertToString(concurrentHashMap);//释放对象pool.release(concurrentHashMap);//发送MQ消息 发送字符串比发送对象的网络传输更小。这是因为字符串可以被序列化为字节数组而对象需要被序列化为字节数组并包含对象的类信息和其他序列化数据。因此发送字符串可以节省网络传输的带宽。messageProducer.sendMessage(RedPackageRainConstant.TOPIC,convertToString);}});return Result.build(ResultCodeEnum.SUCCESS.getCode(), ResultCodeEnum.SUCCESS);}return Result.error(ResultCodeEnum.RED_PACKAGE_FINISHED.getCode(),ResultCodeEnum.RED_PACKAGE_FINISHED.getMessage()); }public Result fallbackRedPackage(Throwable throwable) {log.error(fallback RedPackage info:,throwable.getMessage());return Result.error(ResultCodeEnum.RED_PACKAGE_ERROR.getCode(),ResultCodeEnum.RED_PACKAGE_ERROR.getMessage()); }hystrix 落地实现 pom.xml依赖 !-- hystrix -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-hystrix/artifactId /dependency启动类上添加注解 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate;SpringBootApplication EnableDiscoveryClient // 开启断路器开启Hystrix容错能力 EnableCircuitBreaker public class SpringCloudHystrixDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringCloudHystrixDemoApplication.class, args);}BeanLoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();} }接口上使用 import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty; import com.netflix.hystrix.contrib.javanica.conf.HystrixPropertiesManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;RestController RequestMapping(/hystrix) public class HystrixController {Autowiredprivate RestTemplate restTemplate;/*** HystrixCommand 开启Hystrix命令 当方法执行失败时使用Hystrix逻辑处理* fallbackMethod 当方法执行失败时,调用此方法。*/GetMapping(/getNacosConfigure)HystrixCommand(fallbackMethod defaultFallbackMethod)public String getNacosConfigure() {return restTemplate.getForObject(http://nacos-config/getNacosConfigure, String.class);}private String defaultFallbackMethod() {return 方法执行失败啦Hystrix起作用了;}// 信号量隔离HystrixCommand(commandProperties {// 超时时间默认1000msHystrixProperty(name HystrixPropertiesManager.EXECUTION_ISOLATION_THREAD_TIMEOUT_IN_MILLISECONDS, value 5000),// 信号量隔离HystrixProperty(name HystrixPropertiesManager.EXECUTION_ISOLATION_STRATEGY, value SEMAPHORE),// 信号量最大并发HystrixProperty(name HystrixPropertiesManager.EXECUTION_ISOLATION_SEMAPHORE_MAX_CONCURRENT_REQUESTS, value 5)},//回退方法fallbackMethod defaultFallbackMethod)GetMapping(/semaphoreIsolation)public String semaphoreIsolation() {return 信号量隔离 Thread.currentThread().getName();}// 线程池隔离HystrixCommand(groupKey productService, // 服务名称相同名称使用同一个线程池commandKey selectById, // 接口名称默认为方法名threadPoolKey productServiceListPool, // 线程池名称相同名称使用同一个线程池commandProperties {// 超时时间默认1000msHystrixProperty(name execution.isolation.thread.timeoutInMilliseconds, value 5000)},threadPoolProperties {// 线程池大小HystrixProperty(name coreSize, value 5),// 等待队列长度最大队列长度默认值-1HystrixProperty(name maxQueueSize, value 100),// 线程存活时间默认1minHystrixProperty(name keepAliveTimeMinutes, value 2),// 超出等待队列阈值执行拒绝策略HystrixProperty(name queueSizeRejectionThreshold, value 100)},//回退方法fallbackMethod defaultFallbackMethod)GetMapping(/threadPoolIsolation)public String threadPoolIsolation() {return 线程池隔离 Thread.currentThread().getName();}// 服务熔断HystrixCommand(commandProperties {// 请求数阈值在快照时间窗口内必须满足请求阈值数才有资格熔断。打开断路器的最少请求数默认20个请求。//意味着在时间窗口内如果调用次数少于20次即使所有的请求都超时或者失败断路器都不会打开HystrixProperty(name HystrixPropertiesManager.CIRCUIT_BREAKER_REQUEST_VOLUME_THRESHOLD, value 10),// 错误百分比阈值当请求总数在快照内超过了阈值且有一半的请求失败这时断路器将会打开。默认50%HystrixProperty(name HystrixPropertiesManager.CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE, value 50),// 快照时间窗口断路器开启时需要统计一些请求和错误数据统计的时间范围就是快照时间窗口默认5秒HystrixProperty(name HystrixPropertiesManager.CIRCUIT_BREAKER_SLEEP_WINDOW_IN_MILLISECONDS, value 5000)},fallbackMethod defaultFallbackMethod)GetMapping(/serviceFuse)public String serviceFuse() {return 服务熔断 Thread.currentThread().getName() LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME);}// 服务降级HystrixCommand(fallbackMethod defaultFallbackMethod)GetMapping(/serviceDegradation )public String serviceDegradation() {return 服务降级 Thread.currentThread().getName() LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME);} }文章总结 对本篇文章进行总结 本篇文章主要讲解了熔断限流组件resilience4j和hystrix对sentinel感兴趣的同学可以看看这二篇文章 【java_wxid项目】【第十六章】【Spring Cloud Alibaba Sentinel集成】sentinel-dashboard-1.8.0.jar开机自启动脚本 以上就是今天要讲的内容阅读结束后反思和总结所学内容并尝试应用到现实中有助于深化理解和应用知识。与朋友或同事分享所读内容讨论细节并获得反馈也有助于加深对知识的理解和吸收。 如果您需要转载或者搬运这篇文章的话非常欢迎您私信我哦~ 希望各位读者大大多多支持用心写文章的博主现在时代变了 信息爆炸酒香也怕巷子深博主真的需要大家的帮助才能在这片海洋中继续发光发热所以赶紧动动你的小手点波关注❤️点波赞点波收藏⭐甚至点波评论✍️都是对博主最好的支持和鼓励 博客主页 我是廖志伟开源项目java_wxid 哔哩哔哩我是廖志伟个人社区幕后大佬个人微信号 SeniorRD微信号二维码 博主目标 程序开发这条路不能停停下来容易被淘汰掉吃不了自律的苦就要受平庸的罪持续的能力才能带来持续的自信。我本是一个很普通的程序员放在人堆里除了与生俱来的盛世美颜就剩180的大高个了就是我这样的一个人默默写博文也有好多年了。有句老话说的好牛逼之前都是傻逼式的坚持希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机可以打造属于自己的技术影响力。内心起伏不定我时而激动时而沉思。我希望自己能成为一个综合性人才具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师团队的指挥者技术团队的中流砥柱企业战略和资本规划的实战专家。这个目标的实现需要不懈的努力和持续的成长但我必须努力追求。因为我知道只有成为这样的人才我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代我们必须随时准备好迎接挑战不断学习和探索新的领域才能不断地向前推进。我坚信只要我不断努力我一定会达到自己的目标。 有需要对自己进行综合性评估进行职业方向规划我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。 可访问https://java_wxid.gitee.io/tojson/
http://www.yayakq.cn/news/2513/

相关文章:

  • 哪里做网站的比较多游戏推广员拉人犯法吗
  • 网站建设 网站内容 采集连锁会员管理系统
  • 门户网站代码结构企业免费oa管理系统
  • 做网站需要考虑什么网站免费正能量链接
  • 微信代码小程序wordpress怎么seo
  • 做计划网站爱链接购买链接
  • 搭建网站需要的软件wap文字游戏搭建教程
  • 网站英文版怎么做中国机械加工网18易8下4拉hu
  • 南京手机网站制作WordPress怎么给网页效果
  • 建设银行嘉兴分行官方网站支持wordpress的主机
  • 专门做软陶的网站凡客诚品官网怎么登录
  • 杭州建站价格安徽省建设行业安全协会网站
  • 网站排名推广WordPress注册登录框
  • 酒店招聘做的好的网站电商设计属于什么专业
  • asp简单购物网站源码律师做推广宣传的网站
  • 懒人建站seo流量是什么意思
  • 响应式网站无法做联盟广告怎么注册公司需要多少钱
  • 小米公司网站前建设分析深圳东门地铁站叫什么
  • 石家庄网站建设远策科技dede静态网站
  • 东莞网站设计智能 乐云践新楼市政策最新消息
  • 绍兴 网站建设目前国内做情趣最好的网站
  • 管理信息系统与网站建设有什么区别网络广告是什么
  • 精品网站建设费用 找磐石网络一流北京网站建设 公司
  • 如何建立自己的网站商城有名做网站公司
  • 常州市中大建设工程有限公司网站开发一个平台
  • 做网站都需要学什么语言新闻中心网页设计
  • 做网站多少钱 优帮云微信公众平台注册公众号
  • php电子商务网站开发实例做空机构的网站
  • 网站推广的企业湖南网站建设工作室
  • 永久建站平台solidworks永久免费版