您的位置:首页 > 其它

旧电脑除了换脸盆能做微服务开发吗?

2021-03-03 21:51 387 查看

背景

有同学问我,开发Spring Cloud 微服务这一套需要什么配置,读大学时候买的游戏本 可以使用吗?

可以,但是你会搞得很难受,最好内存不要低于 

16G

PS:如下图 本地运行10个微服务,配置低基本上是是卡死状态

我这里就分享一下我的开发机(17 mbp I5 8G)是如何优化本地应用并配合远程阿里云 ECS 完成开发,并且准备用它再大干5年的。

应用内存配置优化

  • 在IDEA 的应用面板设置 

    VM options: -Xms128m -Xmx256m

  • 这点大小本地开发足够了,但是并不能解决本地机器运行 idea/webstore/db 或其他工具同时开发的场景,内存和配置还是不够。

应用组件化部署

  • 解决方案: 本地只保留当前开放应用到的服务模块,其他业务模块部署云服务器
  • 问题:  由于本地没有公网IP ,本地只能调用ECS 上服务,ECS 上的网关、或其他服务不可访问到本地开发机的服务

  • 如何实现本地和ECS 组网,并实现服务发现的正常注册和网关转发 ?

我们可以通过 *** 或者其他技术,实现本地 & 云服务器 之间组网,实现互相之家的通信,并且指定服务中心的网卡,实现服务调用的正常注册。由于搭建*** 成本较高且难度较大,本文讲述如何使用ZeroTier 实现。

初始化 ECS

购买 ECS

  • 阿里云 ECS 官网
  • 建议购买8G 内存,数据库/redis 等也安装在云上 「镜像选择centos7」

  • 注意配置安全组,服务相关的端口对外暴露

初始化 CentOS7

curl -O http://pigx.vip/os7init.sh

sh os7init.sh pig4cloud

安装 zerotier

  • 本地和云服务器都需要安装客户端
curl -s https://install.zerotier.com | sudo bash
  • 其他操作系统

下载地址:https://www.zerotier.com/download/

部署ZeroTier 组网

基本概念

ZeroTier is a smart Ethernet switch for planet Earth.

翻译:用于地球的智能以太网交换机。

通俗来讲就是 

Peer to Peer
 (P2P) ,ZeroTier 根服务器记录请求路径来做类似于DNS的解析。
主要功能,就是可以把多个不同网络的设备连接在一起,用来就像在一个局域网下 如下图

ZeroTier 配置一个虚拟网段

172.17.2.0/24
,在家中加入这个网络中,即可访问位于公司
172.17.2.101

专有名词

Zerotier 定义了几个专业名词:

  • PLANET 行星服务器,Zerotier 根服务器
  • MOON 卫星服务器,用户自建的私有根服务器,起到代理加速的作用
  • LEAF  网络客户端,就是每台连接到网络节点。

1. 注册 
zerotier
 服务

https://my.zerotier.com/


2. 客户端加入创建的网络

zerotier-cli join a0cbf4b62af33545 #上图创建网络生成的16位ID

输出 200 join OK

zerotier 同意客户端接入

  • 点击第二部创建的网络,进入网络详情 ,同意客户端

如上图,给客户端分配 

172.28.153.245
的局域网 IP, 当然网段可以通过 本页
Advanced
 调整。

同理我们可以在其他设备中加入这个网络.

确定网络联通


网络通了...

Spring Cloud 配置

调整客户端zerotier 注册IP

需要运行在ECS 上的服务配置服务发现选择IP

需要运行在本地的服务 配置服务发现选择IP

服务启动

访问注册中心,查看网络列表,确定每个服务注册IP,都是ZeroTier虚拟IP, 能够互相访问。

【扩展】部署MOON 卫星

配置 moon 服务

cd /var/lib/zerotier-one/

zerotier-idtool initmoon identity.public > moon.json

vim moon.json

zerotier-idtool genmoon moon.json

# 此ID 非常重要对应 唯一服务ID (在 zerotier 后台也能看到)
grep id /var/lib/zerotier-one/moon.json | head -n 1

客户端连接 moon

  • 此处请按照此步骤,若只执行 orbit 可能加入失败
mkdir /var/lib/zerotier-one/moons.d

cp 000000XXX moons.d/

systemctl restart zerotier-one

grep id /var/lib/zerotier-one/moon.json | head -n 1

zerotier-cli orbit id id

zerotier-cli listpeers


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: