RPC技术之动态代理(一)

简介

在RPC技术栈中最主要包括:

  1. 网络传输(大部分RPC框架采用TCP作为底层网络传输协议)。
  2. 传输协议grpc使用的是HTTP2dubbo使用自定义的dubbo协议,也可以是Restful协议和HTTP协议,还可以是hessian协议)。
  3. 数据编码(RPC中数据编解码也是重要一环,可以使用像,java自带序列化或者是第三方的,比如:protobufjsonhessian等)。
  4. 动态代理(动态代理在RPC中的作用是在客户的生成服务接口的代理类,让客户的调用服务端接口像是在操作本地接口一样方便,隐藏底层的编解码和网络传输等)。

具备以上四点一个RPC底层就实现完了,为什么说是底层呢,因为一个完整的RPC还要包括服务注册与发现、服务治理、负载均衡、熔断和限流等高级功能。

阅读更多
使用kubeadm搭建kubernetes集群

参考下面博客完成大部分组件安装

Centos7快速搭建Kubernetes 1.11.1单机集群

可以完成到dashboard前的搭建

问题

  1. 安装指定版本的docker

    yum install docker-ce-17.09.0.ce -y

  2. coredns服务不停的restart,解决办法:

kubernetes(k8s)DNS 服务反复重启解决:

k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https://10.96.0.1:443/api/v1/services?resourceVersion=0: dial tcp 10.96.0.1:443: getsockopt: no route to host
在使用 Minikube 部署 kubernetes 服务时,出现 Kube DNS 服务反复重启现象(错误如上),

这很可能是 iptables 规则乱了,我通过执行以下命令解决了,在此记录:

> systemctl stop kubelet
> systemctl stop docker
> iptables --flush
> iptables -tnat --flush
> systemctl start kubelet
> systemctl start docker
>

参考:https://blog.csdn.net/shida_csdn/article/details/80028905

阅读更多
Spring内置事件和自定义事件

Spring内置事件和自定义事件

事件传递对象(ApplicationEvent)

ApplicationEnvironmentPreparedEvent

ApplicationEvent是事件接口,继承自EventObject(Java规范要求事件对象都需要继承该类)。

内置事件对象包括两部分:

  1. ApplicationContextEvent是Spring Framework需要的。
  2. SpringApplicationEvent该类在Spring boot包下。
阅读更多
document server安装与配置

Document Server服务安装

document-server服务使用docker安装相对比较简单

官方docker镜像

sudo docker run -i -t -d -p 7090:80 \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver

访问服务器当看到

服务器成功

说明搭建成功了

官网网站

Document Server Editor汉化

博客https://blog.csdn.net/hotqin888/article/details/79337881

阅读更多
prometheus+grafana搭建SpringCloud监控

Docker安装Grafana

docker run -d --name=grafana -p 3000:3000 grafana/grafana

默认用户名密码admin/admin

Docker安装Prometheus

docker pull prom/prometheus
docker run -d \
-p 8090:9090 \
-v /root/prometheus.yml:/usr/local/src/file/prometheus.yml \
prom/prometheus \
--config.file=/usr/local/src/file/prometheus.yml

项目集成Prometheus

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_spring_boot</artifactId>
<version>0.6.0</version>
</dependency>
阅读更多