代码拉取完成,页面将自动刷新
Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 点此地址了解更多Sentinel。
客户端利用sentinel-transport-simple-http模块暴露一个特定的端口,Sentinel Dashboard通过http的形式进行数据推送,客户端接收后将规则保存在本地内存中。
客户端注册到相关的注册中心中,Sentinel Dashboard控制台将配置信息推送到配置中心,如nacos,zookeeper中,由配置中心去进行配置推送。
DynamicRuleZookeeperProvider
DynamicRuleZookeeperPublisher
1.运行sentinel-dubbo-dashboard
sentinel.application.name=sentinel-dashboard # 名字
sentinel.application.port=8719 # sentinel的http访问端口
sentinel.application.dashboard=localhost:8181 # 控制台地址
sentinel.api.enable=false #是否开启api推送,选择false则zookeeper,nacos二选一
sentinel.zookeeper.enable=true # 是否开启zookeeper作为datasource
sentinel.zookeeper.address=localhost:2181 # zookeeper配置
sentinel.nacos.enable=false # 是否开启nacos作为datasource
sentinel.nacos.server_addr=localhost:8888 # nacos地址
sentinel.nacos.group_id=DEFAULT_GROUP # group分组,如果不设置则默认是SENTINEL_GROUP
配置并运行DashboardApplication
2.客户端加入相关的依赖
<dependency>
<groupId>com.xmutca</groupId>
<artifactId>sentinel-dubbo-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
客户端加入相关的配置
sentinel:
application:
name: sentinel-provider # 服务的名字
port: 8719 # sentinel的http访问端口
dashboard: localhost:8080 # sentinel dashboard地址
zookeeper:
enable: true # 是否使用zookeeper作为datasource
address: localhost:2181 # zookeeper的地址
nacos:
enable: false # 是否开启nacos作为datasource
server_addr: localhost:8888 # nacos地址
group_id: DEFAULT_GROUP # group分组,如果不设置则默认是SENTINEL_GROUP
项目采用反射的形式获取注入的全部异常信息,写法类似于SpringMVC的ExceptionHandler。
/**
* @version Revision: 0.0.1
* @author: weihuang.peng
* @Date: 2018-12-24
*/
public class ExceptionHandler {
/**
* 默认异常
* @param ex
* @return
*/
@ExceptionProcessor(Exception.class)
public Result handleException(Exception ex) {
return Result.DEFAULT_ERROR_RESULT;
}
/**
* 业务异常处理
* @param ex
* @return
*/
@ExceptionProcessor({ServiceException.class})
public Result handleServiceException(ServiceException ex) {
Receipt result = ex.getExceptionResult();
result.setMessage("项目的实现 -》" + result.getMessage());
return result;
}
}
然后通过以下形式进行异常注册:
ExceptionRegistry.updateForPackage("你的异常中心放的包名")
注意:后面注册的异常处理方法,将会覆盖前面注册的异常处理方法,覆盖依据为ExceptionProcessor中的value类名,处理的时候如果不存在此异常将会从父亲异常进行递归式搜索,如果找不到将会用默认的进行输出。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型