- 博客(9)
- 收藏
- 关注
原创 关于Dubbo的Rpc调用服务提供者方鉴权
1.思路分析利用dubbo的SPI机制,写一个Filter继承Dubbo的Filter。在invoke方法里面通过invoker获取到服务消费者的ip和服务名拿到ip和服务名之后和白名单进行比对。关于服务名的获取,通过dubbo上下文,Attachment。2.代码实现1.创建文件org.apache.dubbo.rpc.Filtervalidation=com.filter.ValidationFilter2.配置文件配置validation.ips=121.199.31.160,
2021-04-28 22:22:43 1290 4
原创 框架设计
一,细节1.防止空指针和下标越界这是一个编写健壮程序的开发人员,在写每一行代码都应在潜意识中防止的异常。基本上要能确保每一次写完的代码,在不测试的情况下,都不会出现这两个异常才算合格。2.保证线程安全性和可见性对于开发人员,对线程安全性和可见性的深入理解是最基本的要求。需要开发人员,在写每一行代码时都应在潜意识中确保其正确性。因为这种代码,在小并发下做功能测试时,会显得很正常。但在高并发下就会出现莫明其妙的问题,而且场景很难重现,极难排查。3.尽早失败和前置断言尽早失败也应该成为潜意识,在有传入
2021-04-24 14:56:09 1082
原创 git开发常用命令
一,基本操作克隆远程代码到本地 git clone git@gitee.com:yin_huidong/rpc.git提交本地缓存区 git add .提交本地版本库 git commit -m “aaa”拉代码 git pull origin master推送到远程 git push origin master本地已有仓库,映射本地仓库到远程仓库 git remote add origin url二,版本控制撤销已修改,未add git checkout – .撤销已修改,未co
2021-04-24 14:37:52 201
原创 dubbo整合nacos
一,dubbo-nacos-common描述:公共模块1.依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> <version>1.18.18</version> </dependency&g
2021-04-10 00:38:17 2068 5
原创 Dubbo源码分析
一,为什么要用Dubbo1.为什么要用现成的框架呢?如果我们自己去开发一个网络通信,需要考虑到底层网络通信协议的处理序列化和反序列化的处理工作这些工作本身应该是通用的,应该是一个中间件服务。为整个公司提供远程通信的服务。而不应该由业务开发人员来自己去实现,所以才有了这样的 rpc 框架,使得我们调用远程方法时就像调用本地方法那么简单,不需要关心底层的通信逻辑。2.大规模服务化对于服务治理的要求当企业开始大规模的服务化以后,远程通信带来的弊端就越来越明显了。服务链路变长了,如何实现对服务
2021-04-09 23:47:41 1480 9
原创 队列的两种实现方式
1.数组实现队列/** * @author yhd * @email * @description 数组实现的队列 入队 出队 队列中元素个数 * @since 2021/4/7 0:40 * <p> * 分析:入队 1 2 3 4 5 * 出队1 2 3 4 5 */public class Queue<T> { private T[] arr; public Queue(int size) { arr = (T[])
2021-04-07 19:48:34 187
原创 栈的两种实现方式
1.数组实现/** * @author yhd * @email * @description 栈 ,使用数组实现 , 基本操作包括 入栈 出栈 栈中元素个数 * @since 2021/4/7 0:21 */public class Zhan<T> { //栈容器 private T[] arr; //构造器指定栈容量 public Zhan(int size) { arr = (T[]) new Object[size];
2021-04-07 19:45:39 136
原创 带头结点的循环单链表
/** * @author yhd * @email * @description 带头结点的循环单链表 * @since 2021/4/2 9:08 */public class CircularLinkedList { static class Node { public int data; public Node next; public Node() { } public Node(int da
2021-04-02 10:56:13 502 2
原创 单链表
public class LinkList { /** * @author yhd * @email * @description 节点 * @params * @return * @since 2021/4/1 16:22 */ static class Node { int data; Node next; public Node(int data) {
2021-04-01 22:43:06 89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人