![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
企业开发
文章平均质量分 54
四美
这个作者很懒,什么都没留下…
展开
-
Hzero 消息服务实现原理
HZERO版本:1.0.0.RELEASE org.hzero.boot.message.handler.ISocketHandler 实现org.hzero.boot.message.handler.ISocketHandler接口,类添加@SocketHandler注解,指定话题的key import org.hzero.boot.message.annotation.SocketHandler; import org.hzero.boot.message.entity.Msg; import or.原创 2022-01-19 18:11:23 · 1848 阅读 · 0 评论 -
Hzero调度服务 主要功能点源码分析
HZERO版本:1.0.0.RELEASE 调度结果和客户端执行结果回写逻辑 发起调度 org.hzero.scheduler.infra.job.MyJob#execute 客户端执行 org.hzero.boot.scheduler.app.service.impl.JobExecuteServiceImpl#jobExecute 串行任务和lockTime配置 参数设置 org.hzero.scheduler.domain.service.impl.JobServiceImpl#getMap .原创 2021-12-29 18:04:53 · 476 阅读 · 0 评论 -
register
架构 Eureka Server:注册中心服务端 服务注册 提供注册表 同步状态 Eureka Client:注册中心客户端 Register: 服务注册 Renew: 服务续约 Eviction 服务剔除 Cancel: 服务下线 GetRegisty: 获取注册列表信息 Remote Call: 远程调用 、 工作流程 Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立原创 2021-10-21 10:29:03 · 191 阅读 · 0 评论 -
gateway
特性 基于Spring Framework 5、Project Reactor和Spring Boot 2.0构建 能够在任意请求属性上匹配路由 predicates(谓词) 和 filters(过滤器)是特定于路由的 集成了Hystrix断路器 集成了Spring Cloud DiscoveryClient 易于编写谓词和过滤器 请求速率限制 路径重写 核心概念 Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。 Predi原创 2021-10-19 14:41:19 · 101 阅读 · 0 评论 -
ribbon
Ribbion核心组件 五大组件 IRule IRule就是根据负载均衡算法中从服务器列表中选取一个要访问的服务 IPing 用于快速检查服务器当时是否处于活动状态(心跳检测) ServerList 用于获取服务节点列表并存储的组件,分为静态和动态 ConfigurationBasedServerList 从配置文件中获取所有服务列表 DiscoveryEnabledNIWSServerList 从Eureka Client中获取服务列表。此值必须通过属性中的VipAddress来标识服务器集群。Dyna原创 2021-10-15 10:35:45 · 104 阅读 · 0 评论 -
feign
feign原理 主程序入口添加了@EnableFeignClients注解开启对FeignClient扫描加载处理。根据Feign Client的开发规范,定义接口并加@FeignClientd注解。 当程序启动时,会进行包扫描,扫描所有@FeignClients的注解的类,并且将这些信息注入Spring IOC容器中,当定义的的Feign接口中的方法被调用时,通过JDK的代理方式,来生成具体的RequestTemplate. 当生成代理时,Feign会为每个接口方法创建一个RequestTemplate。原创 2021-10-12 16:36:23 · 173 阅读 · 0 评论 -
hystrix
hystrix可以完成隔离、限流、熔断、降级这些常用保护功能 信号量隔离 信号量隔离就是hystrix的限流功能。虽然名字叫隔离,实际上它是通过信号量来实现的。而信号量说白了就是个计数器。计数器计算达到设定的阈值,直接就做异常处理。 ratelimiter的令牌桶算法和漏桶算法,都是直接对请求量来计数。只是令牌桶算法可以将前面一段时间没有用掉的请求量允许余额拿过继续用。而漏桶算法一段时间就允许这么多,前面没用掉的也不能用了。 而hystrix信号量隔离限制的是tomcat等Web容器线程数,一段时间仅仅能支原创 2021-10-07 18:16:00 · 141 阅读 · 0 评论 -
transation definition
PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务原创 2021-05-23 18:40:18 · 85 阅读 · 0 评论 -
transational failure
数据库引擎不支持事务 以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB 没有被 Spring 管理 // @Service public class OrderServiceImpl implements OrderService { @Transactional public void updateOrder(Order order) { // update order }原创 2021-05-23 18:14:51 · 147 阅读 · 0 评论 -
easb & easc
easb – easy spring boot 访问地址:easb yfm01启动mysql,redis service mysqld start redis-server /usr/local/redis.conf yfm12启动rabbitmq service rabbitmq-server start easc – easy spring cloud 访问地址:easc yfm01启动mysql,redis service mysqld start redis-server /usr/l原创 2021-05-11 11:20:18 · 160 阅读 · 0 评论 -
分布式锁
分布式锁需要具备的条件 互斥性 在任意时刻,只有一个客户端能持有锁,其他尝试获取锁的客户端都将失败而返回或阻塞等待 健壮性 一个客户端持有锁的期间崩溃而没有主动释放锁,也需要保证后续其他客户端能够加锁成功,就像C++的智能指针来避免内存泄漏一样 唯一性 加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给释放了,自己持有的锁也不能被其他客户端释放 高可用 不必依赖于全部Redis节点正常工作,只要大部分的Redis节点正常运行,客户端就可以进行加锁和解锁操作 高性能 对于访问量大的共享资源,需要考虑减原创 2021-03-21 20:15:42 · 70 阅读 · 0 评论