历代文学-技术生态-总体介绍

1. 历代文学简介

历代文学(https://literature.sinhy.com/#/literature?__c=1000,微信小程序可直接搜索“历代文学”)是一个由两个人(一个后端和一个前端)开发的文学网站,是一个收录从古到今、以及古今中外所有历史名人作品的网站。网站从上线至今差不多1年时间,从未有过大肆宣传推广,累计访问人次却高达近百万次

在这里插入图片描述收录古今中外几乎所有名人的名言高达130万条!

在这里插入图片描述

2. 历代文学技术生态

历代文学网站整个技术生态由我本人总体架构设计。简单来讲,这是一个平台级的微服务架构,以云原生的概念来讲,可能算得上60%左右的云原生

2.1 云原生概念

在这里插入图片描述

前面,我们讲述了什么是云原生。在这里我们就不再深入探讨什么是云原生了,简单回顾下云原生的概念就好,好让大家对历代文学后续的整个技术生态介绍能有个整体概况。

云原生指构建和运行应用以充分利用通过云技术交付模式交付的分布式计算。云原生应用旨在充分利用云技术平台特有的可扩展性弹性和灵活性优势。

2.2 服务器&运行环境

历代文学应用,它只是整个云平台应用生态的一个子应用而已,整个云平台技术生态是一个相对庞大的体系。它牵涉到云原生很多必不可少的组件如微服务、基础设施、容器、网关等内容。

2.2.1 服务器硬件环境

整个云平台最终是部署到2台服务器中

  • 服务器180核,128G内存,18T存储空间,6个万兆级网口,该服务器是华为2U机架式服务器(V5 2288H)硬件环境相对较好,充当整个云平台的核心压力。
    在这里插入图片描述

  • 服务器248核,128G内存,3T存储空间,该服务器主要运行一些云平台相关但不必要一些小应用,如大后台管理,访问统计,邮件服务等一些公司运营方面的小应用。
    在这里插入图片描述

2.2.2 服务器1划出的虚拟机

这两台服务器,通过ESXI(vmvare)虚拟化技术,将其划分为了若干个业务和基础环境需要的虚拟机。其中服务器1主要被虚拟化为以下节点,如下图:

在这里插入图片描述

  • IM集群:主要充当整个平台的即时消息架构,可横向伸缩,所有需要跟客户端即时通讯的,都通过IM集群这两个节点进行交互。
  • 分布式存储集群:充当整个平台的大数据存取服务,可横向伸缩,整个平台,所有子应用,需要用到上传的,都靠这个大数据平台统一支撑。
  • 数据库集群:充当整个平台业务的结构化数据存取服务。
  • 基础环境集群:该集群主要用于搭建整个分布式微服务体系的基础环境,如注册中心集群、缓存集群、分布式任务调度集群、消息队列集群等。
  • 业务应用:整个平台的所有业务子应用全部部署到业务应用节点,业务应用节点是可以根据业务流量无限动态伸缩的,采用K8S容器化管理和编排部署。
  • 网关:充当整个云平台的网关,统一转发和处理所有客户端请求到各业务实例,还负责客户端的安全加密通信,以及监听客户端的暴力请求,发现存在暴力的客户端,将对其采取ip封锁等惩罚机制。

2.3 技术生态介绍

历代文学和整个云平台体系所使用的技术生态,将主要从操作系统、微服务和容器化三个方向进行阐述。

2.3.1 操作系统

经过多方面的对比,最终果断从centos、ubuntu等系统中跳了出来,选择了一款国产化的操作系统openEuler,别问我太多为什么,我在这里也不是为了宣传它,只是简单略过介绍以下。看下它的诞生和发展就知道了:

2010-2012,EulerOS诞生:华为内部高性能计算项目EulerOS首次发布。
2013-2016,EulerOS1.x系列:华为内部ICT产品首次规模商用,包括存储产品、无线控制器、CloudEdge等。
2016-,EulerOS 2.x系列:华为内部云产品商用以及ICT产品规模商用,包括消费者云、华为公有云、存储产品、无线产品、云核心网等。
2019年12月31日,华为作为创始企业发起了openEuler开源社区,并将EulerOS相关的能力贡献到openEuler社区,后续EulerOS将基于openEuler进行演进。
2021年9月25日,华为正式发布操作系统 openEuler 欧拉。 2021年11月5日消息,openEuler Summit 将于11 月 9 日-10 日在北京召开。此次峰会由欧拉开源社区举办,华为作为战略合作单位。 2022年10月2日消息,openEuler22.09 正式版发布:实现欧拉与鸿蒙的互联互通。 2022年12月16日消息,openEuler 宣布全球下载量突破 100万,开源欧拉将在12月28日-29日举行操作系统产业峰会2022&openEuler Summit 2022。
截至2022年12月底,开源欧拉社区企业成员数超过600家,商业累计装机部署数量达300万套,在中国服务器操作系统的新增市场中,欧拉的市场份额达25%。
2023年4月,经过openEuler委员会全体会议的批准,openEuler工业领域操作系统筹备委员会正式成立。

在这里插入图片描述
欧拉开源社区已吸引近万名开发者,近百个特别兴趣小组,300家企业加入社区,汇聚处理器、整机、基础软件、应用软件、行业用户等全产业链伙伴。国内主流的操作系统厂商均推出基于欧拉的商业发行版,应用于政府、运营商、金融、能源、电力、交通等行业核心系统。欧拉商用已经突破60万套,有望实现中国服务器领域新增市场份额第一。

看到这里,你们还不心动吗?我为什么要选择它,因为它高性能,占用资源低,每次重启只需要不到10秒时间,社区活跃,发展迅猛!能不用它吗?

2.3.2 微服务技术生态

中间件名称版本简介
Nacos2.4.0服务器注册与发现
Rocketmq5.3.0异步消息队列
Redis7.2高频访问数据缓存
redisson3.33.0基于redis的分布式数据结构应用接口
spring-boot3.3.0spring应用生态的基础
spring-cloud2023.0.3spring最新版本微服务基础
spring-cloud-alibaba2023.0.1.2阿里的基于nacos实现的微服务注册与发现
spring-cloud-starter-gateway4.1.5微服务网关
postgresql16.3PG数据集群的数据库版本
minio8.5.11基于S3标准的 分布式文件存取中间件

2.3.3 应用实例划分介绍

实例名实例个数实例介绍
nacos应用2微服务服务注册发现中间件实例
rocketmq应用42m-2s-sync即2主2从集群模式
即时通讯2无任何第三方接口依赖,纯自己打造的IM分布式即时通讯组件
分布式文件服务2平台级的分布式文件存取服务实例
头像应用1用于个人中心,用于自己设置头像,或者选择内置的头像
历代文学应用1历代文学自身业务功能的应用实例
辞典应用1历代文学的辞典模块功能,即为该应用实例提供的服务
统一认证中心1整个平台的SSO单点登录统一认证服务
个人中心1整个平台的用户个人中心应用,个人设置,修改密码,头像等基础功能
系统应用1提供平台级基础配置功能服务
国际化应用1每个实例都支持国际化切换,每个实例的国际化配置是通过该应用处理
访问统计服务1对用户的行为进行统一统计分析的实例
后台管理应用1整个云平台的统一大后台管理系统实例,负责权限分配,可查看访问流量等所有管理功能
平台守护应用1负责对所有登录用户的会话进行监听,监听其过期时间
电影应用1这是整个平台的另一个子应用(电影应用),可免费看电影,在官网可以看到入口
官网应用1官网入口应用实例
网关应用1整个云平台所有业务流量统一进出口

2.3.4 应用的容器化部署

整个云平台下,所有微服务实例,以及大部分基础设施环境都采用容器化部署,目前规模较小,暂时采用的docker部署,后续会慢慢切换到k8s容器自动化管理和编排!如下图,可以看到历代文学应用也在其中,通过docker容器化部署模式运行!
在这里插入图片描述

3. 总结

好拉,以上就是历代文学子应用背后所涉及的整个技术生态,及其整个技术架构体系简单介绍,这完完全全是由两个人联手打造的,我主要负责后端整体架构设计,另一个伙伴负责前端整体架构设计。

这个网站为了后续长远发展规划,背后很多技术都是自主研发,包括IM分布式即时通讯组件,可用于开发聊天(历代文学里面进去,右上角就可以看到有个聊天窗口),消息通知等各种即时通讯功能。以及自主研发的分布任务调度组件数据库低代码组件一个真正做到零sql语句的数据库快速开发的低代码工具),前后端加密通讯组件等。

如下这段代码,是查询历代文学的作者分页列表,展示的是一个类似原生SQL写法的写法,涉及3个表的关联查询,看着是否会觉得优雅?

            NuwadQuery nq = new NuwadQuery();nq.select(LiteratureAuthor2Table.ID, LiteratureAuthor2Table.NAME, LiteratureAuthor2Table.ALIAS, LiteratureAuthor2Table.EN_NAME, LiteratureAuthor2Table.DYNASTY_ID, LiteratureAuthor2Table.DYNASTY_NAME, LiteratureAuthor2Table.WRITING_COUNT, LiteratureAuthor2Table.CI_COUNT, LiteratureAuthor2Table.QU_COUNT, LiteratureAuthor2Table.SANWEN_COUNT, LiteratureAuthor2Table.WYW_COUNT, LiteratureAuthor2Table.VERSE_COUNT, LiteratureAuthor2Table.BOOK_COUNT, LiteratureAuthor2Table.QUOTE_COUNT).select(SysUserInfoTable.AVATAR, SysUserInfoTable.WX_HEADIMGURL, SysUserInfoTable.AVATAR_TYPE, SysUserInfoTable.PROFILE).select(SysOccupationTable.NAME, SysOccupationTable.EN_NAME).from(LiteratureAuthor2Table.class).leftJoin(SysUserInfoTable.class).on(LiteratureAuthor2Table.ID).eq(SysUserInfoTable.ID).leftJoin(SysOccupationTable.class).on(LiteratureAuthor2Table.OCCUPATION).eq(SysOccupationTable.ID);

如下图,是历代文学前后端加密的通讯方式,连请求地址都是加密的,且通讯密钥是动态更新的。
在这里插入图片描述响应内容加密:
在这里插入图片描述

好了,本期内容就到这里,有兴趣的小伙伴,可以关注我,后续我会陆续分享整个云平台下用到很多精湛的技术,包括自主研发的中间件等各类组件,也可以评论区留言想期待哪方面的技术实现分享,这对想系统化学习微服务架构及并应用于实战的朋友是个好的机会,因为这是一个活生生的云产品案例!感谢大家拜读本文~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394567.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几款设计师必备的AI抠图软件工具分享给你!

前言 在图像处理领域,抠图是一项基本而关键的技能。传统上,PS是作为抠图的首选工具,但其操作复杂性往往令初学者望而却步。幸运的是,随着AIGC技术的发展,现在有多款AI软件和在线网站能够以更简单、快捷的方式完成抠图…

VS+Qt+C++点云PCL三维显示编辑系统

程序示例精选 VSQtC点云PCL三维显示编辑系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VSQtC点云PCL三维显示编辑系统》编写代码,代码整洁,规则,易…

【wiki知识库】08.添加用户登录功能--后端SpringBoot部分

目录 一、今日目标 二、SpringBoot后端实现 2.1 新增UserLoginParam 2.2 修改UserController 2.3 UserServiceImpl代码 2.4 创建用户上下文工具类 2.5 通过token校验用户(重要) 2.6 创建WebMvcConfig 2.7 用户权限校验拦截器 一、今日目标 上篇…

【大模型】大模型指令微调的“Prompt”模板

文章目录 一、微调数据集格式二、常用的指令监督微调模板2.1 指令跟随格式(Alpaca)2.2 多轮对话格式(ShareGPT)2.3 其他形式2.4 常见模板 参考资料 一、微调数据集格式 在进行大模型微调的过程中,我们会发现“Prompt”…

mysql 日志爆满,删除日志文件,定时清理日志

今天发现网站不能正常访问,于是登陆服务器查找问题。 机智的我随手用命令:df -l 发现 硬盘爆满了,于是就知道问题所在了。 Filesystem 1K-blocks Used Available Use% Mounted on/dev/xvda1 20641404 16963004 16929876 10…

安捷伦N9918A是德keysight N9918B 30khz-26.5g频谱分析仪

Agilent N9918A、Keysight N9918B、 FieldFox 手持式射频和微波组合分析仪,30 kHz - 26.5 GHz 附加功能: 30 kHz 至 26.5 GHz动态范围:100 dBCAT:故障点距离、回波损耗、电缆损耗VNA:S11、S21、S22、S12、幅度和相位…

PMP考试一定要考到3A吗?怎么备考?

PMP(Project Management Professional)认证是全球公认的项目管理专业人士资格认证,它代表着项目管理领域的高水平标准。 在备考PMP考试时,有些赛宝关心是否需要考到3A(即三个领域均为Above Target,超出目标…

GoFly快速开发框架代码市场使用说明

说明 我们框架坚持开源的项目绝不能存在收费项目,所以我们gofly快速开发开源版没有内置代码仓插件,因此需要使用代码市场中的代码包需要再企业版中使用,代码市场插件如下: 图1、社区-代码市场​​​​ 他和企业版管理后台的代码仓…

慢SQL优化的30个思路方案整理

文章目录 (1)索引优化(2)查询重构(3)减少数据扫描量(4)利用缓存(5)分区表(6)优化排序和分组(7)业务查询条件限…

openfoam模拟时取消报错Floating point exception (core dumped),从而看到具体错误内容

一、理论简介: unset FOAM_SIGFPE 是用于在 OpenFOAM 环境中解除对浮点异常(Floating Point Exception, FPE)的信号处理。 FOAM_SIGFPE 环境变量的作用 在 OpenFOAM 中,FOAM_SIGFPE 环境变量用于控制程序对浮点异常&#xff08…

【设计模式】设计模式之观察者模式

文章目录 观察者模式什么是观察者模式引入组成UML图代码实现1. 定义观察者接口2. 定义主题接口3. 实现具体观察者4. 实现具体被观察者5.测试 应用场景优点缺点 观察者模式 什么是观察者模式 观察者模式(Observer Pattern)是一种设计模式 它定义了一种…

BTS4140N:高侧电源开关芯片中文数据手册

芯片概述 : BTS4140N是一款智能高压侧电源开关N沟道垂直功率MOSFET,带电荷泵和电流控制输入、采用智能SIPMOS技术单片集成,提供嵌入式保护和诊断功能。 芯片特征描述 电流控制输入短路保护电流限制欠电压时关断过压保护(包括负载突…

【mars3d】GraphicLayer遍历添加数据,正确拿到数据

import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 export let graphicLayer // 矢量数据图层 export const mapOptions {scene: {center:{"lat":30.577085,"lng":116.885511,"alt":45203.5,"heading&…

Jenkins参数化构建

目录 一. 准备ansible 二. Gitlab新建子项目 三. Jenkins建立任务,进行初步配置 四. 导入nginx主机的公钥 五. 配置ansible执行脚本 六. 构建测试 一. 准备ansible 在jenkins主机中安装ansible [rootjenkins ~]# yum install -y epel-release [rootjenkins…

【学习笔记】Day 6

一、进度概述 1、《地震勘探原理》第二章 2、“DenseNet” 周报分享 二、详情 1、《地震勘探原理》第二章 注:本来的打算是逐章整理,但是在听老师指导后,明晰了学习目的。故学习方法更改为侧重 “刷” 。不求一遍全弄懂&#xff0c…

AI在商品计划领域的应用

在现代商业环境中,AI驱动的商品计划优化已经成为企业有效管理资源和提高利润的关键因素。 市场预测与库存管理 精准市场预测:以某著名零售品牌为例,该品牌引入了一种基于AI的智能分析工具,帮助实现了精准的市场预测与库存管理。根…

【Linux基础】Linux基本指令(一)

目录 前言一, ls指令二,pwd指令三,cd指令3.1 当前目录与上级目录3.2 绝对路径和相对路径3.3 tree指令 四,创建一个普通文件或目录4.1 touch指令4.2 mkdir指令 五,删除目录或文件5.1 rmdir指令5.2 rm 指令 六&#xff0…

细节持续跟新

1.input的自带光标如何去除 2.阻止事件冒泡 3.获取父亲兄弟的innertext 4.画表格 参考博主链接 前端-HTML表格制作_哔哩哔哩_bilibili 美化

不同环境下RabbitMQ的安装-3 操作RabbitMQ

前面两篇从不同环境下RabbitMQ的安装-1 为什么要使用消息服务 到同环境下RabbitMQ的安装-2 ARM架构、X86架构、Window系统环境下安装RabbitMQ介绍了关于如何在ARM架构、X86架构和Window系统下如何安装,各位小伙伴可以根据自己的实际开发场景参考安装。 到本篇是一些…

【ARM】CMSIS 软件标准接口

目录 CMSIS:Cortex Microcontroller Software Interface Standard1. 概述2. CMSIS-Core2.1 概述2.2 关键组件2.3 示例代码2.4 详细解释 3. CMSIS-DSP3.1 概述3.2 关键组件3.3 示例代码3.4 详细解释 4. CMSIS-RTOS4.1 概述4.2 关键组件4.3 示例代码4.4 详细解释 5. C…