AIX Zing


  • 首页

  • 归档

  • 标签

  • 关于

  • 全栈计划

  • 搜索

软件架构

发表于 2020-03-20 | 阅读次数

架构是系统的基本组织结构,涵盖包含的组件与组件之间的关系,组件与环境的关系,以及指导架构设计和演进的原则等内容。

  • 系统:系统是以特定方式组织的组件集合,以实现特定的功能。软件系统是其软件组件的集合。一个系统通常可以划分成若干个子系统。
  • 结构:结构是根据某个指导规则或原则来组合或组织在一起的一组元素的集合。元素可以是软件或硬件系统。软件架构可以根据观察者的上下文展示各个层次的结构。
  • 环境:软件系统所在的上下文或环境对其软件架构有直接的影响。这样的上下文因素可以是技术、商业、专业、操作等。
  • 利益相关者:任何对某个系统及其成功与否感兴趣或关心的个体或团体,都是利益相关者。例如,架构师、开发团队、客户、项目经理和营销团队等。
阅读全文 »

高可用常见设计手段

发表于 2020-03-20 | 阅读次数

微服务高可用的设计手段

  1. 服务冗余,服务无状态化
  2. 负载均衡,ApI幂等设计
  3. 异步设计,添加超时机制
  4. 数据复制缓存分片,服务限流降级熔断
  5. 架构拆分 服务治理

服务分级:
按业务划分,主业务要保证可用性,其他业务要保证故障率不会影响主业务,其他系统故障要求不会出现长时间不可用(根据实际情况设定阈值);常见的划分方式是1-3级


阅读全文 »

楼已经塌了,现在重建

发表于 2020-01-15 | 阅读次数

图片全部被屏蔽了

新图床正在寻找中,爬虫也在弄,反正简书是不能继续当图床了,桑心啊


您的浏览器不支持 audio 标签。

咕咕咕

鸽了这么久,是应为抑郁症,还有懒,还有简书把我的图给屏蔽了。好了,借口讲完:给自己道个歉。对不住了,你的计划我没执行完。

Just do the next right thing

图一定是要拿回来的,Py脚本以及开始写了。
Flag就不立了,希望尽快能搞定图床问题,真不行只能买服务器玩了。

最后:
这篇禁止转载


by @zing

IntelliJ IDEA管理Docker容器的小技巧

发表于 2020-01-15 | 阅读次数

用Docker免配置安装镜像

开发最烦的就是搭建大项目环境的时候一堆软件要安装,比如Nginx、Redis、Kafka、MySQL……等等,如果是在公司,有开发环境在线上还比较方便,但是自己在家弄自己的玩具时,你得搞自己的一套,那繁琐程度相当于自己搞了一遍全环境。想转行当运维的暂且不表,但是如果不是特地学习或者特殊化测试,弄一套Docker image,把这些装起来就够了。Docker run 几乎是一键搭建好你想要的任何中间件,数据库。比你下载源码,cmake编译半天,搞N多配置要舒服多了。想想Mac的homebrew,不香吗?

以 redis 为例:

1
docker run -p 6366:6366 --name localRedis redis

然后进度条跑完,你就有Redis了。【慢是因为你的网络不够科学,自己可以找国内镜像】

阅读全文 »

IDEA Services 工具窗口:一个管理所有服务的地方【译】

发表于 2019-11-11 | 阅读次数

在开发优秀的软件时,可能需要创建一堆运行/调试配置,包括一些程序服务器的配置。您可能还需要几个Docker容器来在各种环境中测试代码,也许是一个以带数据库操作的后端容器,以及一个来查看数据库的控制台。所有这些实体服务具有不同的用途,并且以前是通过专用工具窗口进行管理的。 IntelliJ IDEA 2019.2引入了Service工具窗口,可将所有内容集中在一个地方: View | Tool Windows | Services 或按 Alt + 8(在Windows和Linux上)或 command + 8(在macOS上)。

Services tool window

当您运行与托管服务相关的内容(例如,运行Docker容器)时,工具窗口会自动弹出。 但是,对于运行/调试配置,您必须在Service工具窗口中指定要使用的类型。 为此,请转到Run | Edit Configurations ,选择 Templates,然后将必要的配置类型添加到Service列表中可用的配置中。如图:Configurations available in Services。

Configurations available in the Services tool window

服务会按类型分组,以便于导航。 您还可以为自定义服务组创建单独的选项卡,例如,您使用频率更高或与特定开发任务相关的选项卡。 只需选择必要的服务并将其拖动到工具栏。

Services tool window tabs

想获得更集中的视图,您可以隐藏树形图。 它由”Service“导航栏代替,并为当前选定的服务留出更多查看空间。

Hide services tree

树形图中的每个项目都有一组按钮,通常用于启动/停止,配置,删除所选内容等等。 这些操作与在相应的专用工具窗口中使用的操作相同。

IntelliJ平台API中也提供“Service”工具窗口,以供插件开发人员在其中包含其功能。

更多信息可以参考官方文档: Services tool window


这个功能对于分布式开发是非常爽的,再也不用几十个Tab来回切换了,但是也有一个缺点:
不能区分同一类型服务下具体的配置差别,如图:
运行多个实例运行

只是区分了端口号

只是区分了一下端口号,内部具体的配置是看不到的。所以,你懂的。

喜欢请点个赞
转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
如有错误,请务必指正!谢谢!
我的博客:https://xzing.github.io/

ps:没图是因为简书不让跨域
附上原文地址:https://blog.jetbrains.com/idea/2019/08/services-tool-window-one-place-to-rule-them-all/

分布式数据库与CAP定理

发表于 2019-07-25 | 阅读次数

什么是CAP

CAP

任何一个分布式数据库产品都无法达到C.A.P特点俱全,这是目前的结论。但是这个不代表这个只能三取其二,二是在3者中间找平衡点。

那么首先介绍一下,CAP是什么

阅读全文 »

Python 件操作简单工具方法

发表于 2019-06-11 | 阅读次数

python3 文件操作

需要导入os

1
import os

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 覆盖写入文件
def overwrite_to(s_file_path, s_content):
if os.path.exists(s_file_path):
os.remove(s_file_path)
produ_f = open(s_file_path, "a")
produ_f.write(f"{s_content}\n")
produ_f.close()

# 删除文件
def remove_file(s_file_path):
if os.path.exists(s_file_path):
os.remove(s_file_path)
else:
print(f"{s_file_path} file not exist")

# 追加内容
def append_to(s_file_path, s_content):
if os.path.exists(s_file_path):
produ_f = open(s_file_path, "a+")
produ_f.write(s_content)
produ_f.close()
else:
raise IOError(f"{s_file_path} file not exist")

喜欢请点个赞,

转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3

如有错误,请务必指正!谢谢!

我的博客:https://xzing.github.io/

Python 字符串检查的简单工具方法

发表于 2019-06-06 | 阅读次数

python3 小记

Python最近开始学写脚本

很简单,记录一下,以后方便复制,如果后面遇到比较好的库再更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 去除字符串首尾空白
def trim_str(s):
if isinstance(s, str):
return s.strip()
else:
return ''


# 判断字符不为空
def is_not_empty_str(s):
if s is None:
return False
elif isinstance(s, str):
return s.strip() != ""
else:
return False

喜欢请点个赞,

转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3

如有错误,请务必指正!谢谢!

我的博客:https://xzing.github.io/

02-Go的数组和指针

发表于 2019-05-16 | 阅读次数

一、 定义数组

下面介绍3种定义数组的方式:空数组,:=定义Array、定义自由长度的数组。
还有二维数组的定义

  1. 如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package main

    import (
    "fmt"
    )

    func main() {
    //空数组
    var arr1 [10]int
    //:=定义Array,必须初始化
    arr2 := [5]int{1, 2, 3, 4, 5}
    //自由长度
    arr3 := [...]int{1, 2, 3}
    //二维数组
    var arrInArr [3][4]int
    fmt.Println(arr1, arr2, arr3, arrInArr)
    }
阅读全文 »

01-Go的变量与定义

发表于 2019-05-06 | 阅读次数

类型

  1. 布尔和字符串
    bool true 和 false
    string 字符串””
  2. 整数
    int 随操作系统
    int8
    int16
    int32
    int64
    uint
    uint8
    uint16
    uint32
    uint64
    uintptr 指针
阅读全文 »
12…8
zing

zing


光荣在于平淡
艰巨在于漫长


无论我多早迎接这清晨
在路上
都会有人在
我以为别人还在梦乡
但无论什么时候
这个世界都比我快一步

76 日志
84 标签
© 2020 zing
转载请注明出处:xzing.github.io
Hexo主题 - NexT.Mist