0%

一、背景

早期内部使用的是当当网fork的Dubbox,由于现在Dubbo又开始重新维护,而且阿里将其捐献给了Apache,并成为了Apache的顶级项目。因此dubbo版本升级到2.7.1势在必行。

二、版本升级

从2.8.4升级到2.7.1

具体可以参考:

Dubbo Spring Boot (v2.7.1) : https://github.com/apache/incubator-dubbo-spring-boot-project
Dubbo (v2.7.1) : https://github.com/apache/incubator-dubbo

三、遇到的问题

阅读全文 »

1.docker 中下载 mysql

docker pull mysql

2.启动

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

3.进入容器

docker exec -it mysql bash

4.登录mysql,密码输入123456

阅读全文 »

一、简介

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker.png

二、Docker与虚拟机的比较

    Docker是在操作系统进程层面的隔离,而虚拟机是在物理资源层面的隔离,两者完全不同,另外,我们也可以通过下面的一个比较,了解两者的根本性差异。

虚拟机与docker区别.png

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般为几十个
阅读全文 »

1.打包时指定了主类,可以直接用java -jar xxx.jar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!--main方法打包jar包插件-->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.TestApplication</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>

2.打包时没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径)

1
java -cp xxx.jar com.TestApplication

1.背景

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。场景:近期在研究微信公众号开发,发现需要暴露公网地址,并且是80端口的服务,正好手边有朋友买了腾讯云服务器,因此想通过腾讯云服务器作为frp的服务端,本地机器作为客户端,让公网可以直接访问内网本地机器发布的服务,实现内网穿透。

2.作用

  1. 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

  2. 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

  3. 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

3.具体实现

通过tcp方式访问公司内网服务(当前公网服务器没有绑定域名的情况下)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#修改 frps.ini 文件,这里使用了最简化的配置:
# frps.ini
[common]
bind_port = 7000
启动 frps:
./frps -c ./frps.ini

#修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8088
remote_port = 80
启动 frpc:
./frpc -c ./frpc.ini
阅读全文 »

1.背景

  nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。

2.安装

  • 下载nginx最新版本到linux服务器上,解压tar -zxvf nginx-1.13.8.tar.gz,进入解压目录 cd nginx-1.13.8,并进行手动安装。

  • 配置:

1
./configure --prefix=/usr/local/nginx
  • 编辑nginx:
1
make
阅读全文 »

1.内存消耗太大

  (1)公司使用gitlab后,发现服务器内存居高不下,使用top命令查看内存消耗,发现服务器上git将近消耗一半内存资源。而且很奇怪的是竟然开启了32个进程。后经查资料,原来这跟gitlab的默认机制有关。在配置文件/etc/gitlab/gitlab.rb里,unicorn[‘worker_processes’] = 2,默认是被注释掉的,这就解释了为什么会开启32个进程,因为cpu有32核,如果服务器只用于GitLab的话,官方建议是CPU核心数加一,可以提高服务器的响应速度。不过如果内存只有4G,或者服务器同时承载其他服务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死。

  (2)解决方案:根据服务器使用情况,给unicorn[‘worker_processes’]设置一个合适的值,可解决内存占用过大问题。

2.时间不一致

  gitlab的web页面上activity里显示的时间相差8小时,很有可能是时区设置问题,设置时区为:gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’,还有种可能是服务器本身的时间有问题,服务器服务时间修改注意事项:写入clock -w  ,强制将时间写入COMS!这样重启后不会失效。 

一、背景

由于GitLab内存消耗很大,已经影响到A服务器上的其他服务,同时考虑到代码管理服务应该单独部署在一台服务器上,因此决定从服务器A迁移到服务器B上。两台服务器均是CentOS 7,gitlab版本是gitlab-ce-9.5.6-ce.0.el7.x86_64.rpm 。注意:高版本的Gitlab无法恢复低版本备份的数据,需要注意在B服务器部署和A服务器一样版本的gitlab,部署好环境后开始备份和数据迁移。

二、备份

备份A服务器上的gitlab数据,执行命令:

1
gitlab-rake gitlab:backup:create RAILS_ENV=production

PS: 备份后的文件一般是位于/var/opt/gitlab/backups下。

三、拷贝

阅读全文 »

1.protobuf简介

  Protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。Protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一。   

2.安装插件

在idea里安装插件Protobuf Support

3.配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
1
2
3
4
5
6
7
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
阅读全文 »