openGauss持续构筑企业级内核能力,使能行业技术创新

企业级数据库openGauss开源一年以来,社区迅速壮大,生态蓬勃发展,围绕企业级性能、企业级安全、企业级可靠等方面持续加强,并在行业加速落地。目前openGauss成功支撑邮储银行新一代分布式金融核心系统上线,并成功打造同业*的金融核心系统;帮助中华人寿团险核心系统使用鲲鹏全栈替换,实现性能倍增;openGauss基于鲲鹏4路服务器的中国移动数据库性能测试排名*对*。面向未来,openGauss将从国计民生行业数据库应用的*紧迫问题和长远需求出发,不断在核心技术上进行突破,将根扎深,共同打造枝繁叶茂的数据库主流生态。

openGauss面向企业核心业务场景持续创新

推出面向核心业务场景的高可靠特性

金融与运营商在社会经济运行中处于关键基础位置,其核心业务场景,对数据库的性能和稳定性有苛刻的要求。openGauss 将于6月30日发布软硬协同的高可靠特性-RAS故障感知功能,该特性基于鲲鹏*新4路高端服务器和openEuler操作系统,支持在硬件内存发生故障前,及时通知上层OS与数据库,实现数据库故障隔离与快速切换,在核心业务数据库场景业务运行故障无感知,数据安全可控无丢失。

%title插图%num

图1: openGauss基于RAS的高可靠原理图:故障隔离、快速切换

推出多款重量级企业级特性,数据库更快、更稳、更强

此外openGauss社区将持续为企业级用户打造高可用、高性能内核,openGauss将在9月30日的版本中,面向开发者和企业用户发布In-place Update存储引擎、基于Paxos协议的DCF高可用组件以及兼顾TP业务和AP业务的HTAP特性。

In-place Update中文意思为原地更新,是相对于openGauss行引擎当前所采用的Append Update(追加更新)模式的升级。追加更新对于业务中的增、删以及HOT UPDATE(即同一个页面内更新)有很好的表现,但对于跨数据页面的非HOT UPDATE场景,垃圾回收不够高效。而原地更新模式将*新版本的“有效数据”和历史版本的“垃圾数据”分离存储:*新版本的“有效数据”存储在数据页面上,单独开辟一段UNDO空间,用于统一管理历史版本的“垃圾数据”,因此数据空间不会由于频繁更新而膨胀,垃圾回收效率更高(参见图2)。同时可实现基于NUMA-Ware架构的高可扩展UNDO子系统以及基于多版本的索引技术。在这种设计思路下,用户可彻底抛弃原有垃圾数据清理机制,从而使整体系统运行更加平稳,适应更多业务场景和工作负载。

%title插图%num

图2: In-place Update数据存储示意图:数据在原page页,undo通过指针单独管理

Paxos是一种强一致、高可用的分布式一致性协议。对于存在宕机风险的分布式系统来说,在不要求可靠的消息传递下可实现数据强一致,且可容忍消息丢失、延迟、乱序及重复。基于多数派机制的Paxos协议保证了2F+1的容错能力,即2F+1个节点的系统*大允许F个节点同时出现故障。更进一步,Paxos协议具备自仲裁,多数派选主及日志复制能力,使得openGauss在保证数据一致性的同时,在高可用方面可进一步得到增强,包括:

(1)通过自仲裁、多数派选主能力摆脱第三方仲裁组件,*大缩短RTO时间,且可预防任何故障下的脑裂双主;

(2)支持节点同步、同异步混合部署的多集群部署模式;

(3)提升主备间节点日志复制效率,提升系统的*大吞吐能力。借助openGauss的DCF高可用组件,用户不仅可以免去系统脑裂的风险,还可以提升系统性能。

%title插图%num

图3: Paxos原理示意图

HTAP代表了一类数据库应用场景,核心思想在基于一套内核提供TP和AP的混合负载能力,而混合负载的两个核心要素是性能和资源控制。从性能维度,openGauss将基于现有的能力进一步挖掘系统并行执行能力(如SMP),提升CPU利用率(如动态编译执行),实现内存内计算(如内存引擎),这些不同引擎或能力支撑openGauss从容应对不同的负载请求。而资源控制方面通过资源管理流机制实现不同负载间的资源隔离,即彼此间互不影响且资源足够,该方法让各自负载在满足SLA的基础上,有非常好的实时性。HTAP实现了单个系统的多业务负载处理能力,一套数据底座,应对两套业务模型,省去数据迁移的代价。

%title插图%num

图4: HTAP即能进行事物处理,又能进行分析处理

openGauss除了在内核能力上不断推出新特性,同时在社区和生态建设上,携手伙伴一起打造面向分布式场景的高竞争力解决方案。

openGauss通过ShardingSphere分布式中间件,实现线性扩展,*高可达6400数据分片,可以满足业务不断增长的数据规模要求;结合业务流量,可以灵活平滑进行数据节点的扩缩容,智能读写分离,实现分布式数据库的自动负载均衡。而标准化镜像机制确保多环境一致性交付,不仅能够支持多云场景,还能有效降低企业对平台的依赖性。同时这套分布式方案,还能支持强有力的集群管理、运维能力以及多地多中心灵活部署。

共建、共治、共享,打造数据库主流生态

生态是开源库数据库成功的关键因素,openGauss一直就秉持共建、共治、共享的生态策略,携手产业链伙伴,*终实现生态共赢。openGauss不仅代码开源,还通过开源社区运营,让业界的开发者、伙伴能公开透明的参与进来,通过技术委员会、SIG组的形式广泛汇聚业界的技术专家,为openGauss发展提供源源不断的智力支持和思想输入。当前,openGauss社区理事会正在筹备中,预计于下半年成立,是openGauss开源社区主要治理机构。

%title插图%num

图5: 30+企业加入openGauss社区

开源近一年,openGauss得到业界伙伴的强烈的响应和支持,已有6家数据库企业基于openGauss发布商业发行版,下半年会有更多新的企业发布商业发行版。目前,民生银行、中国电信云公司、深信服等30多家企业级用户已加入社区,并在多个关键特性上积*贡献。openGauss还与行业解决方案软件伙伴紧密合作,针对行业场景的特点,联合推出对应解决方案:与深信服推出高性能安全数据库一体化方案、联合SharingSphere社区推出全栈开源的分布式中间件解决方案、联合头部厂商面向降本增效场景推出存算分离方案等,相关联合解决方案均已在行业核心场景实现商用落地。

智能基座、产教融合,为产业界提供丰沛的人才

创新之道,唯在得人。得人只要,必广其途以储之。高校是人才培养的根据地,是人才发展的未来。openGauss联合高校,通过产、学、研、用,打通人才体系建设,通过基础理论对接产业和市场需求构建知识体系,从理论到实践到应用相结合,构建良性人才生态,激发产业持续活力。

目前清华、北大、复旦等50余所著名高校已开设openGauss课程,覆盖数万名学生,另有超过30所院校已确定将在年内开课,未来一年,预计将有超过200所院校在教学中使用openGauss,真正实现产教融合。目前,openGauss已进入全国计算机等级考试。

openGauss逐渐成为数据科学的学术创新平台,清华大学、北京航空航天大学、西北工业大学、西安电子科技大学等数十所高校,均已基于openGauss进行创新型基础研究工作,如AI-native的数据库技术、面向新硬件(ARM多核、TPU/GPU、RDMA、NVM/SCM等)新型数据库技术、云数据库架构研究、面向行业数字化转型的数据及隐私保护、面向嵌入式设备场景的数据库系统等方向研究。

从基础研究、高校合作到产业创新,openGauss社区汇聚高校、产业界的智慧和力量,共同开展数据库基础软件创新突破。openGauss持续聚焦数据库根技术,以开源协作创新,为业界带来持续*的数据库技术与产品;以开放繁盛生态,联合产业链上下游伙伴,让openGauss落地千行百业,助力客户加速数字化转型,共促产业发展和生态繁荣。

阿里云开源PolarDB数据库,与社区共建开源数据库生态

随着互联网和云计算的飞速发展,数据库也正在加速向云服务方向演进。云数据库服务在数据库整体市场中的占比越来越大云原生以及分布式技术正在重塑数据库整个技术栈。

阿里云在自身互联网业务和云数据库服务有丰富的实践经验,在高可用,分布式,云原生,存储与计算分离等技术上有深厚积累,为了更进一步促进整个数据库产业的变革,现在将这些关键技术组件和系统包括内部MySQL分支AliSQL(目前RDS服务的内核),分布式一致性协议库X-Paxos,高性价比存储引擎X-Engine,基于PostgreSQL开源数据库打造的分布式数据库产品PolarDB for PostgreSQL一起开源,与社区一起共建云原生分布式数据库生态。

阿里云数据库秉承组件模块化,兼容标准化协议的方式,可以灵活组合和复用这些技术,打造更多的系统解决方案,不断完善和丰富云原生分布式数据库的形态,满足更多样化的用户需求。

%title插图%num

AliSQL 8.0

2018年初,我们预见到MySQL 8.0的数据字典、实时加列、Hash Join和CTE等功能对各种业务场景的重要性,便将研发重心转向AliSQL 8.0的研发,也是这一次开源的核心版本。

AliSQL 8.0已经过集团内部和公共云场景的考验,在功能、性能、稳定性和安全性上都有非常扎实的技术创新和功能积累。全网开启的Thread Pool支撑了海量的并发和连接数,内核级的秒杀和并发控制技术支撑了瞬间业务流量冲击,Faster DDL保障了高峰时期DDL操作的稳定性,各种增强的性能统计指标和信息加快了问题分析和排查的速度,存储层和通信层的加密功能保障了数据的安全。更多详情可访问阿里云官网AliSQL内核功能介绍(https://help.aliyun.com/document_detail/129925.html?spm=a2c4g.11174283.6.585.48044c22wfWYOe),强劲的数据库内核是支持和服务好关键业务场景的基础。

X-Paxos

X-Paxos是C++编写的Paxos分布式一致性协议库,在阿里集团内部已经广泛用户诸多分布式系统来保证数据强一致性下的高可用能力,是一个得到充分验证的Paxos协议工程实现。X-Paxos会自动探测网络环境,根据传输延时来自适应调整发包的频率和批量聚合的大小,在跨数据中心长传链路上也同样保证吞吐能力。

X-Engine

阿里自研的高压缩及冷热存储分离的存储引擎,基于LSM架构之上做了大量优化,求取性能与成本之间的*佳平衡(详见SIGMOD’19论文(https://dl.acm.org/doi/pdf/10.1145/3299869.3314041)),兼容MySQL,适用于大数据量的TP数据库,目前已经集成在自研产品PolarDB中实现了存储计算分离与一写多读,未来也会将这一技术在AliSQL下开源。

PolarDB for PostgreSQL

基于PostgreSQL开源数据库打造的分布式数据库产品PolarDB for PostgreSQL,蕴含了多项阿里云数据库技术,这些核心技术在公有云和混合云场景下都已经得到了广泛应用。

PolarDB for PostgreSQL率先开源的三节点高可用版本是PostgreSQL原生WAL复制协议与阿里自研的Paxos一致性协议算法库X-Paxos的一次完美结合,Logger节点的*小化资源成本、Learner节点的跨域只读、Leader节点的多模式选举等特征也让PolarDB for PostgreSQL独具特色。

PolarDB for PostgreSQL紧随其后开源的分布式插件版,具有很好的规模化扩展能力和性能。这得益于全局强一致性所采用混合逻辑时钟(HLC)实现,MVCC和2PC协议结合算法实现的分布式事务。基于PostgreSQL独有的插件化技术实现分布式Sharding功能,*大限度的保证了分布式SQL计算对单机SQL的兼容能力。

%title插图%num

开源社区

在开源社区方面,我们一直保持与MySQL&PostgreSQL社区的密切沟通,每年发现并反馈数十个重要问题和缺限给社区,员工也经常获得社区Award*项,但我们发现很难将一些侧重场景的好需求提交给上游社区,比如著名的秒杀补丁,始终未能合并入上游社区。深觉我们不仅要有自己的开源MySQL&PostgreSQL分支,更需要建立自己的开源社区,好集中更多的力量和以更快的响应速度来解决更多业务问题和需求,从而进一步推动开源数据库在国内的快速发展,并在国际开源社区上发挥更大的国内技术影响力。

阿里云数据库对开源社区的投入力度会越来越大,期望更多的开源社区爱好者能够参与进来,与我们一起共建生态,服务用户,推动技术变革。

源码开放地址:

https://github.com/alibaba/PolarDB-for-PostgreSQL

PostgreSQL / openGauss 数据库易犯的十个错误

1

同时设置日志行前缀和csvlog格式

比较常见的是同时配置下面这两个参数:

  1. log_line_prefix = ‘%m %u %d %p’
  2. log_destination=‘csvlog’
  • %m是带毫秒的时间戳
  • %u是用户名
  • %d是数据库名
  • %p是进程ID

然后当我们配置为csvlog日志时,日志行的内容项是固定的,所以当我们需要配置日志前缀,精简日志行的内容项时,log_destination不能配置为csvlog。下面是正确的配置:

  1. log_destination=‘stderr’
  2. log_line_prefix = ‘%m %u %d %p’

2

不符合预期的日志轮换策略

日志轮换策略可以通过log_rotation_size参数按日志文件大小控制或者通过log_rotation_age参数按时间控制,但下面这四个参数需要合理组合使用。

  1. log_filename
  2. log_truncate_on_rotation
  3. log_rotation_age
  4. log_rotation_size

方案一:每天生成一个新的日志文件。

  1. log_filename=‘postgresql-%Y-%m-%d.log’
  2. log_truncate_on_rotation=off
  3. log_rotation_age=1d
  4. log_rotation_size=0

方案二:写满固定大小(如10MB),则进行切换。

  1. log_filename=‘postgresql-%Y-%m-%d_%H%M%S.log’
  2. log_truncate_on_rotation=off
  3. log_rotation_age=0
  4. log_rotation_size=10MB

这种方案我们一般是为了根据时间去查看日志,文件名根据日志量可以设置到时分秒,但这里设置log_rotation_size并不能严格控制固定大小。

方案三:保留固定天数的日志并循环覆盖,例如固定一周或者固定一个月。

  1. log_filename=‘postgresql-%u.log’
  2. log_truncate_on_rotation=on
  3. log_rotation_age=1d
  4. log_rotation_size=0

log_filename常见的通配符变量:

  • %u是星期的数字表示,范围是[1,7],1代表星期一
  • %w也是星期的数字表示,范围是[0,6],0代表星期天
  • %d是月份中的天数表示,范围是[01,31]

生产环境第三种方案更合适一些。

3

同步复制表的序列

看看下面这个例子,我们创建test表使用serial自增序列类型,系统帮我们生成了test_id_seq序列。

  1. postgres=# create table test(id serial primary key,name varchar unique);
  2. CREATE TABLE
  3. postgres=# \d test
  4.                                 Table “public.test”
  5. Column |       Type        | Collation | Nullable |             Default
  6. ——–+——————-+———–+———-+———————————-
  7. id     | integer           |           | not null | nextval(‘test_id_seq’::regclass)
  8. name   | character varying |           |          |
  9. Indexes:
  10.    “test_pkey” PRIMARY KEY, btree (id)
  11.    “test_name_key” UNIQUE CONSTRAINT, btree (name)

当我们复制t_test表时,test表的序列引用也同时复制过来了,可以使用虚拟生成列来解决这个问题。

  1. postgres=# create table t_test(like test including all);
  2. CREATE TABLE
  3. postgres=# \d t_test
  4.                                Table “public.t_test”
  5. Column |       Type        | Collation | Nullable |             Default
  6. ——–+——————-+———–+———-+———————————-
  7. id     | integer           |           | not null | nextval(‘test_id_seq’::regclass)
  8. name   | character varying |           |          |
  9. Indexes:
  10.    “t_test_pkey” PRIMARY KEY, btree (id)
  11.    “t_test_name_key” UNIQUE CONSTRAINT, btree (name)

openGauss对PG的这个问题做了修复,下面是openGauss复制t_test时,序列按表名做了区分。

  1. omm=# \d t_test
  2.                              Table “public.t_test”
  3. Column |       Type        |                      Modifiers
  4. ——–+——————-+—————————————————–
  5. id     | integer           | not null default nextval(‘t_test_id_seq’::regclass)
  6. name   | character varying |
  7. Indexes:
  8.    “t_test_pkey” PRIMARY KEY, btree (id) TABLESPACE pg_default
  9.    “t_test_name_key” UNIQUE CONSTRAINT, btree (name) TABLESPACE pg_default

4

跳变的序列值

创建序列seq1,设置cache为10,session A获取下一个值为1。

  1. postgres=# create sequence seq1 cache 10;
  2. CREATE SEQUENCE
  3. postgres=# select nextval(‘seq1’);
  4. nextval
  5. ———
  6.       1
  7. (1 row)

session B查询获取下一个值为11。

  1. postgres=# select nextval(‘seq1’);
  2. nextval
  3. ———
  4.      11
  5. (1 row)

序列值插入为了保证连续性,要设置cache为1。

5

从任意库查询pg_stat_statements模块统计信息

pg_stat_statements模块用来跟踪SQL语句的执行统计信息。我们如果把该模块安装到postgres数据库,就只能连到postgres数据库进行查询,除非其他数据库也安装了该模块,否则会提示报错找不到。

无论任何操作,都需要连接到一个数据库,即使是我们只想创建一个全局的数据库用户,所以选对数据库特别重要。

6

truncate操作理解为DML语句

log_statement参数控制日志记录级别,有4个选项:none、ddl、mod、all。开启ddl,它会记录create、alter和drop相关的语句,但不记录truncate。

truncate在Oracle中属于DDL语句,在PostgreSQL中属于DML语句。因此,当我们使用DDL日志记录语句时,无法记录到truncate。

7

认为数据库的owner可以管理其下所有对象

数据库、模式、表都有自己的owner,他们都属于实例中的对象,数据库owner只是具有数据库这个对象的CTc权限。数据库的默认权限为:

  • 允许public角色连接,即允许任何人连接。
  • 不允许除了超级用户和owner之外的任何人在数据库中创建schema。
  • 会自动创建名为public的schema,这个schema的所有权限已经赋予给public角色,即允许任何人在里面创建对象。

schema使用注意事项:schema的owner默认是该schema下的所有对象的owner,但是允许用户在别人的schema下创建对象,所以一个对象的owner和schema的owner可能不同,都有drop对象的权限。

8

认为public模式下的对象可以互相访问

public模式只是允许任何人在里面创建对象并管理自己的对象,并不能查看别人创建的对象。

9

创建索引时起名为表名称

单个数据库里,索引和表的名称不能重复,因为他们都属于relation。

  1. postgres=# create index a on a(id);
  2. ERROR:  relation “a” already exists

10

把walsender当作主库

通常我们从操作系统层查看主库有walsender,备库有walreceiver进程,并且walsender进程信息中可以看到备库的IP地址,可以初步判断主备状态正常。

但请注意有walsender进程或者数据库中能查到pg_stat_replication视图并不能断定是主库,仅在一主一备环境可以这样简单判断。下面的图可以看出,虽然有walsender进程,但它也是备库。

%title插图%num

如何挑选中国移动可以访问的境外服务器?

近段时间用了一下移动的网络,才发现有好多没有被墙的境外服务器、也囿于移动出口宽带没法被移动用户访问。
但事实上有好多用户在使用移动的宽带。

– 要怎么选服务器才能保证移动用户能访问到?
– 或者说,哪些主机服务商能被移动连接上?
移动 服务器 访问 境外13 条回复 • 2021-08-04 15:37:28 +08:00
ostrichb 1
ostrichb 42 天前 via Android
无法保证,只能自己尝试
AlphaTauriHonda 2
AlphaTauriHonda 42 天前 via iPhone
用 Singapore 或者 Tokyo 的 lightsail
Xushet 3
Xushet 42 天前 via Android
有个词叫“移动墙中墙”
HolaPz 4
HolaPz 42 天前
建议中转把
q428202849 5
q428202849 39 天前
用三网回国的服务器
需要可以找我 免费测试~
Simcentric 6
Simcentric 31 天前
可以了解下哦
qianbi321 7
qianbi321 29 天前
三网 GIA 稳如狗
AKAMichael 8
AKAMichael 22 天前
vultr 中转
Vectorst 9
Vectorst 22 天前
@AKAMichael 我就是因为 Vultr 的服务器移动访问不了才来问的 哈哈哈哈哈 概率问题
AKAMichael 10
AKAMichael 21 天前
@Vectorst 是不是被墙了,应该能访问的,我也是移动

AKAMichael 11
AKAMichael 21 天前
@Vectorst 跟 vultr 差不多的价格,有家 hostdare 比 vultr 好一点,还有就是 gcp 白嫖啊
Vectorst 12
Vectorst 19 天前
@AKAMichael 倒是没有墙,因为联通、电信网络都可以流畅访问。结合楼上老哥,以及我之前听人说移动出口不太行,估计就是移动网络的问题。谢谢推荐,我去瞧一瞧ヾ(•ω•`)o
q428202849 13
q428202849 16 天前
要么就用移动的
或者用 CN2 三网
需要可以联系我~

家用 24 小时开机服务器, CPU 买 10500T 还是 10500?

Smash 1
Smash 28 天前
只运行了 100 来天,因为半年前停过电.

%title插图%num

hadoop 2
hadoop 28 天前
带 T 的吧,从散热考虑
cxh116 3
cxh116 28 天前
低负载待机功率都差不多,满负载时才有功率差别.

个人是选不带 T,用来应对突发性能需求.
ch2 4
ch2 28 天前
不满载使用就选不带 T 的,经常满载选带 T 的
autoxbc 5
autoxbc 28 天前
带 T 的就是自带功耗墙,并不是同功率效能更高,可以说毫无用处
x86 6
x86 28 天前
@cxh116 #3 家用的能有什么突发情况
cxh116 7
cxh116 28 天前
@x86 编译东西的时候.

比如像我, 把家用服务器当开发机用, ssh 上去写代码. 主要原因是 mac 升级依赖容易挂,用 linux 不容易出现这问题.
ryd994 8
ryd994 28 天前 via Android
只有散热跟不上的情况才需要用 T
闲置时 T 不 T 都是一样的
T 就是锁了*大功率

不带 T 的应该也可以通过 XTU 锁功率
ashong 9
ashong 28 天前 via iPhone
看过 yt 上的对比,二者功耗相差无几
Danswerme 10
Danswerme 28 天前
@Smash 这个耗电情况如何?

Smash 11
Smash 28 天前
@Danswerme 没注意过电费…
SIGEV13 12
SIGEV13 28 天前
散热器够用买哪个都差不多。那点电费没什么。
如果准备常开不重启,Xeon E 系列+ ECC 内存可能更合适
HP ML30 , Microserver Gen10+都行
ZRS 13
ZRS 28 天前 via iPhone
长期开机建议使用 ECC 内存和支持的处理器
xenme 14
xenme 28 天前 via iPhone
洋垃圾都连续开好多年了,基本只有断电或者升级维护才会重启
westoy 15
westoy 28 天前
不差那点差价当然不带 T 了

带 T 的只是官锁, 不带 T 的限制一下运行模式、锁下功率和倍频其实和带 T 一样的, 同等性能功率上不会有什么区别的
wanguorui123 16
wanguorui123 28 天前
树莓派没坏,路由器电源先热坏了
q428202849 17
q428202849 25 天前
租用也不错啊
q428202849 18
q428202849 25 天前
或者拿到机房托管

想搭建个网站邮箱服务,请问怎么搭建

域名和服务器哪里的好 搭建用什么源码? 搭建完后需要能接收谷歌邮箱的邮件 谢谢

搭建 邮箱 源码 域名21 条回复 • 2021-08-06 13:38:41 +08:00
ferock 1
ferock 26 天前 via iPhone
一般情况下,你能接收谷歌邮件,但是没法给谷歌发
input2output 2
input2output 26 天前
域名的话 namesilo, namecheap, cloudflare, porkbun 都挺不错的
服务器的话 Vultr, Linode, DigitalOcean, AWS, GCP,但要申请开放相关端口
本人用过 Vultr,发个工单就好了,其它不大清楚
搭建的话可以 Postfix+Dovecot

自己以前搭过,实测可以 mail-test 满分,其实谷歌还好,只要 mail-test 通过,发出去的基本不会当垃圾
*恶心的是 qq 邮箱,mail-test 满分,但退信不收
你可以参考一下我以前的记录,但有点老了,建议参考其它更新的资料
https://iochen.com/post/install-email-service-on-centos-7-part-1-postfix/
https://iochen.com/post/install-email-service-on-centos-7-part-2-dovecot/

现在我已经改用其它提供商的了,因为自己维护太烦了
Xusually 3
Xusually 26 天前 ❤️ 3
直接说结论,不要自建邮件系统。
繁琐是一回事儿,关键是繁琐的事儿都办完了,各种黑名单都逃掉了,各种测试都通过了,还是会有很多邮箱有自己的黑名单、灰名单机制,很难突破,根本没办法解决。
v2k9 4
v2k9 26 天前
现在哪还有自己建立邮箱服务系统的,都是租用大企业的服务系统。

自己准备一个域名,解析道相关服务就行了。

关键词:

腾讯企业邮箱

阿里企业邮箱

网易企业邮箱

谷歌企业邮箱
potatowish 5
potatowish 26 天前 via iPhone
用企業微信郵箱吧
TuYanzheng 6
TuYanzheng 26 天前 via Android
*好不要用云服务器……肯定会被封……
zengguibo 7
zengguibo 26 天前
用别人的吧,垃圾邮件和互通性你是搞不好的
iceheart 8
iceheart 26 天前 via Android
Poste 了解一下
JensenQian 9
JensenQian 26 天前 via Android
氪金 gusite
baoshuo 10
baoshuo 26 天前
不推荐自建,可达性非常差。
目前我在用阿里云企业邮箱和 Outlook 的域名邮箱。

11
Maskeney 26 天前
只需要收的话你可以用很多邮件中转服务,比如 improvmx
RHG 12
RHG 26 天前 via iPhone
iredmail
opengps 13
opengps 26 天前
以前不封锁 25 端口的时候,我在办公室开端口转发就能搭建起来,现在基本上只能找一些小众不合规的厂商试试看了
dsn93 14
dsn93 26 天前
同,可以试试 sendgrid 也挺好用的
akira 15
akira 26 天前
自建邮箱很麻烦,搭建跑起来只是基础,后续一堆事情要做
xiaoz 16
xiaoz 26 天前 via Android
pose 比较简单,这是我之前的搭建经历: https://www.xiaoz.me/archives/16114
SJ2050cn 17
SJ2050cn 26 天前
如果你只是收邮件,自建的可以,推荐 mailu(同时支持收发邮件),docker 直接安装,服务器用 hostwinds,虽然网络不好,但 25 端口是开着的,并且可以改 rdns,但发邮件的自己别折腾了,折腾过的人告诉你,就算自建完测试是满分,qq 邮箱还会大概率将你发的邮件丢尽垃圾箱,还是花点小钱用人家成熟的邮件服务吧。
XiLingHost 18
XiLingHost 26 天前
mailcow 挺不错的
https://github.com/mailcow/mailcow-dockerized
jingslunt 19
jingslunt 26 天前
1.保证服务器的发件端口 25 端口能用(写个 http 起个 25 端口看下能不能用)
2.部署过几个企业邮箱,确实可用。
https://github.com/serghey-rodin/vesta
3.回 17 楼的问题,
邮件小于 10kb 很可能会被拒收
为了保证反馈邮件不被反垃圾拦截,建议将 feedbackloop@qq.com 加入白名单
它域举报垃圾邮件地址 alarm@tencent.com
如果已经确认邮件是真实的 QQ 邮箱用户发送,请将垃圾邮件原文以附件形式转发给 abuse@qq.com 。
4.保证 ip 是干净 ip,通过以下链接测试
https://www.corp-email.com/rbl#check_rbl
5.邮箱有效性检测
https://www.mail-tester.com
6. dns 做规范些

参考
https://www.izcv.com/661.html
q428202849 20
q428202849 25 天前
用海外的服务器吧
herojaxy 21
herojaxy 14 天前
如果只做接收的话比较好弄,涉及到外发,首先得解决 25 端口连通性的问题。
现在的 vps 运营商默认都是封禁 25 端口的,除非你是一家公司,否则很难申请解除封禁。推荐的话就是 linode,他们家默认 25 端口是开通的。

邮箱服务器软件的话,看系统,如果是 windows 推荐使用 smartermail http://smartertools.com ,安装比较简单
还有服务器拿到*件事就是查看一下 IP 有没有被列入各个 rbl 黑名单组织,可以去下面两个工具集网站查询
https://helohub.com/blacklist
https://mxtoolbox.com

第二件事就是找运营商添加反向解析,不是所有的运营商都支持添加 ptr 反向解析的,不过 linode 支持自助添加比较方便,添加完之后 https://helohub.com/ptr 查询是否生效

其实比较同意三楼的观点,自建是个坑,如果可以的话,尽量还是租用邮件服务商现有的 saas 服务,因为对于自建,计算你把你所有能做的全做完,并不意味着你就万事大吉了,维护一个邮箱系统是很麻烦的事情

vultr 新加坡机器什么时候才有货

lostberryzz 1
lostberryzz 25 天前
一直有货啊,包括各种规格,你是不是看错了
sky96111 2
sky96111 25 天前 via Android
vultr 现在还能用吗?以前用的人适合 IP 池都被墙光了
sky96111 3
sky96111 25 天前 via Android
的人适合->的时候
cielpy 4
cielpy 25 天前
@sky96111 五年前建的机器的 IP 还健在,速度还不错
yanzhiling2001 5
yanzhiling2001 25 天前
一直都有货
qnyh 6
qnyh 25 天前 via Android
@sky96111 同感,之前就是因为 vultr 的经常被墙所以弃了
wdssmq 7
wdssmq 24 天前
现在 losangelesvps 的年付比较香。。
peterzhang0602 8
peterzhang0602 24 天前
@lostberryzz 没有
peterzhang0602 9
peterzhang0602 24 天前
@yanzhiling2001 seller out
peterzhang0602 10
peterzhang0602 24 天前
只想弄个新加坡的 vps

yanzhiling2001 11
yanzhiling2001 24 天前
@peterzhang0602 你换个 vultr 账号试试呢? 是不是 i 账号被限制了?
jasonselin 12
jasonselin 4 天前
我新账号 也没有 sgp 旧的倒是随便开

为什么中国的服务器带宽这么贵

内地服务器的带宽价格,基本是海外的 10 倍了吧。直接在国内 XX 云买香港服务器,会有 IP 被封禁的风险吗?

带宽 服务器 内地 海外43 条回复 • 2021-08-17 07:08:10 +08:00
mokeyjay 1
mokeyjay 23 天前 ❤️ 6
因为国家政策要求民用带宽量大价低,所以运营商普遍用高价商宽补贴家宽
wy315700 2
wy315700 23 天前 ❤️ 4
AWS GCP 的带宽一点都不便宜
LiYanHong 3
LiYanHong 23 天前 ❤️ 1
我司 20M 电信专线 2000 一个月呢
pcbl 4
pcbl 23 天前 via Android
@LiYanHong 专线的话,不贵
love 5
love 23 天前 ❤️ 1
你去在阿里云或腾讯云买香港的机子,选那个精品回国线路试试,价格非常离谱
谁有 HK 非精品线路的搭的网站吗我看看速度是不是可以接受?
est 6
est 23 天前 ❤️ 1
归根结底就是通信信道归国家垄断控制,私人、民企禁止假设任何通信管道对公众服务。所以降低互联网带宽费用的互相 peering 的自组织组网,在我国只有名义上存在。
mxT52CRuqR6o5 7
mxT52CRuqR6o5 23 天前 via Android ❤️ 1
剥削商用补贴民用,中国的家宽手机流量都比国外便宜,有利有弊
delectate 8
delectate 23 天前 ❤️ 2
@est
WTO:???
境外 ISP:!!!
墙:XD
ArJun 9
ArJun 23 天前 ❤️ 7
说国外便宜的麻烦你查清楚,国内虽然是带宽贵,但是是包流量的。国外虽然不限速了,但是 1g 的流量不便宜
yanyumihuang 10
yanyumihuang 23 天前
@est 你是在说 Google 用暗光纤白嫖流量的事情吗?

yuzo555 11
yuzo555 23 天前
建议查询清楚是否有流量限制,国外的服务器一般都是带宽很大,但是流量限制几 TB,那大带宽没卵用。
不能和国内无限流量的带宽比价格,都不是同一个产品。
est 12
est 23 天前
@yanyumihuang 不是。就是中国特色的一些操作。比如正大光明的 BGP 不用,非得偷偷做 流量穿透 。。。这样的市场环境,只能导致带宽价格很高。
est 13
est 23 天前
@yuzo555

> 带宽很大,但是流量限制几 TB,那大带宽没卵用。 不能和国内无限流量的带宽比价格,都不是同一个产品

国内屌丝版套餐 1M 的带宽,满水管跑一个月 1M x 3600 x 24 x 30 也就 2.6T 。。。国外屌丝版 1G 出口,一个月 2.5T 封顶的也很常见。但是高峰期 1G 应对轻松得多。
gstqc 14
gstqc 23 天前
像 Linode DigitalOcean 这种确实便宜
Linode $5 就有 1TB 流量,1G 出口带宽,实际业务跑起来其实远比 10M 固定带宽好得多
10M 一个月全跑满能跑 3TB 又怎么样,高峰期马上歇菜

阿里云的价格和 GCP 基本一致了

https://help.aliyun.com/document_detail/25411.html
按流量计费 0.8 元 /GB

https://cloud.google.com/vpc/network-pricing
GCP $0.12/GB
Showfom 15
Showfom 23 天前 via iPhone ❤️ 4
海外也就是欧美便宜

说国内贵的,再去对比下香港澳洲非洲之类的地方,然后你发现还是国内便宜
cairnechen 16
cairnechen 23 天前
国内外视频网站的带宽成本,看财报不是一目了然么
echo1937 17
echo1937 23 天前 via iPhone
http://www.cac.gov.cn/2017-01/23/c_1120366809.htm
一个很大的原因是:
2.违规自建或使用非法资源问题。IDC 、ISP 、CDN 企业不得私自建设通信传输设施,不得使用无相应电信业务经营许可资质的单位或个人提供的网络基础设施和 IP 地址、带宽等网络接入资源。

*明显的例子就是,15 年国务院提出提速降费,国内宽带网速资费才得以大踏步发展,否则相关行业是没啥动力去这么做的。
sagaxu 18
sagaxu 23 天前 via Android ❤️ 2
电信企业承担了额外的责任,比如广大农村地区,建基站和拉宽带都是赔本买卖,羊毛可不能出在农民头上。
aogu555 19
aogu555 23 天前
商用补贴民用吧,民用宽带真的挺便宜的
mascteen 20
mascteen 23 天前 via Android
@sagaxu 被贪了吧,跟两桶油一样,价格高却年年亏损
sagaxu 21
sagaxu 23 天前 via Android ❤️ 1
@mascteen 可能石油这个行业贪腐比较严重,日本英国油价比咱们还贵,他们石油公司也亏损
hanru 22
hanru 23 天前 via Android
@est 你算错了,还要再除以一个 8,1M 带宽跑满一个月也就 300 多 GB 。
est 23
est 23 天前
@hanru 哈哈哈。。果然。。。这样算下来国内的 1M 就更垃圾了!
ooh 24
ooh 23 天前
https://wximg3.sinaimg.cn/large/61b61d9dly4gssk60srs7j21h60g6tcm.jpg
l1ve 25
l1ve 23 天前
是什么给了你错觉, 欧美的带宽很便宜吗?
Rocketer 26
Rocketer 23 天前 via iPhone
商用价格差别不大,但欧美对个人用户更友好一些,低配服务器比中国便宜
HankLu 27
HankLu 23 天前
全世界的服务器都不便宜,毕竟是拿来赚钱的,怎么可能便宜卖给你
huihuilang 28
huihuilang 23 天前 via Android
@love 试过了,完全看脸,速度无法保证,而且容易断
elfive 29
elfive 23 天前 via iPhone
因为效率不高
LessonOne 30
LessonOne 23 天前
@sagaxu 广大农村地区 是 额外责任??????你在说什么 ??
sparrww 31
sparrww 23 天前
@love krqia.cn
halden 32
halden 23 天前
@sagaxu 英国虽然产很多油但税高,按*新的油价,1.342P/L(GlobalPetrolPrices.com ),其中给到石油公司的增值税为 20%,给到消费者的燃油购置费(税)为定额 57.95p/L,二者加一起超过一半了

日本油贵部分原因是自己非产油国,全靠进口;然后还是税,这里有一张表,里面说了日本油价的组成,虽然有点年头了,但可以做参考 https://eneken.ieej.or.jp/data/4440.pdf 。RL;DR: 油价的 38%为进口油原料成本,精炼厂 17%,销售渠道占 13%,剩下 41%都是税

开放竞争的市场贪的可能性要小很多,除非垄断性腐败,不是说不存在,而是即使存在 margin 也会小很多
t4we 33
t4we 22 天前
@l1ve 这点有疑问吗?
evilStart 34
evilStart 22 天前 via Android
@ArJun 嗯,digitalocean 和 linode 之流的
evilStart 35
evilStart 22 天前 via Android
@ArJun 嗯,digitalocean 和 linode 之流的知名供应商普遍 5 美元 1tb,基本不限带宽,算下来 1g 要 0.005 美元,约和 3 分钱一个 g 。真是太贵了呢??
aaniao002 36
aaniao002 22 天前 via Android ❤️ 1
@evilStart 算错了,你预设了国内公司去 us 租宽带,如果是 us 公司租 us,国内公司租国内,才叫便宜,换句话说,5rmb 1tb 才叫等价。
Zien 37
Zien 22 天前 via iPhone
因为宽带服务带有 zz 任务,就像普通老百姓感受不道税收,但其实负税特别高。为了 zz 合法性呗。就像国产软件,看起来免费,其实….
justrand 38
justrand 22 天前
@LiYanHong
100M 上下对等的电信商用专线加固定 IP,一年 1w 多点,每个城市看来不一样。
justrand 39
justrand 22 天前
@LiYanHong 不好意思,你是说服务器带宽吗? 我们好像是 30M,2w 不到点,一开始看错了以为是企业宽带呢。不好意思
LiYanHong 40
LiYanHong 22 天前
@justrand 电信专线,以前叫 IP 城域网,20M 对等,8 个 ip (实际可用 5 个)
q428202849 41
q428202849 16 天前
移动 1G 4999 元 /月
电信 1G 6000 元 /月
BGP1G 13000 元 /月
需要看我名字
jeeyong 42
jeeyong 8 天前
因为民用宽带价格低, 尽可能的覆盖更多的用户, 才有这么多用户参与互联网, 让码农有饭吃.
jj1100 43
jj1100 4 天前 via iPhone
我在德国用的 1n1,1 欧元一个月,400Mbps 不限流量…

谷歌相册(在 Android 11 和 scoped storage 下?)删除图片好像有问题

谷歌相册(在 Android 11 和 scoped storage 下?)删除图片好像有问题

acess · 2 天前 · 598 次点击

LineageOS 18.1 ( Android 11 ),OpenGapps 貌似对 Android 11 只支持到 nano,然而在我这 nano 都刷不了,提示系统分区空间不够,只能刷 pico 。
刷完后下载了一个谷歌相册,然后授予媒体文件权限,看上去好像正常了。

但是我随便截了张图,然后尝试在设备上删除(不是删除进回收站)这张截图时,发现删除被系统拦截了。

拦截界面就像媒体报道说的一样,文中貌似说这是 Android 11 和 scoped storage 带来的改变:

好吧拦截就拦截吧……但是,万一我手滑点了拒*呢?

所以我我就又试了一次,点了拒*后,图片从谷歌相册里……消失了……
没有报错什么的,就是直接……消失了。

实际上,如果用其他文件管理器,或者是 LOS 自带的图库去看,就会发现文件其实还在原处,压根没删掉。

对于谷歌相册来说,其实我也不用它同步,大不了卸载。
但我有点好奇这背后是咋回事,不知道别的 app 会不会有类似的问题?
或者说也许这个问题只在我这里碰到了,别人都是正常的?

5 条回复    2021-08-19 09:53:26 +08:00
sky96111
    1

sky96111   2 天前

貌似是你的问题。。我刚刚测试了一下,删除时如果弹窗点拒*,会提示无法将内容移动到回收站
acess
    2

acess   2 天前

@sky96111 我这边直接点删除到回收站按钮也是这样。有问题的不是删除到回收站,而是点开右上角三个点的按钮展开菜单,里面有个“从设备中删除”。
dingwen07
    3

dingwen07   2 天前

@acess #2 从设备中删除理论上不管删没删成功都不会从谷歌相册里消失吧
acess
    4

acess   2 天前

@dingwen07 我这边试了几次,都是从设备中删除后,就会消失(允许删除就是实际上真的删掉了,拒*删除就是实际上没删但谷歌相册里没了)。
我没开同步,从来没开过。
sky96111
    5

sky96111   2 天前 via Android

点直接删除复现了。应该是 Google 相册的 bug

安卓该如何显示 slatejs 格式的数据?

安卓该如何显示 slatejs 格式的数据?

 

pigspy · 2 天前 · 619 次点击

服务器接口返回的数据是 slatejs 的数据格式,类似

[{
	"type": "paragraph",
	"children": [{
		"type": "emotion",
		"id": 51,
		"children": [{
			"text": ""
		}]
	}, {
		"text": "来去也就剩下那么些人了。"
	}]
}]

安卓 APP 应该怎么显示呢?不想用 webview 来处理

12 条回复    2021-08-19 20:55:42 +08:00

learningman
    1

learningman   2 天前

这不 json 吗
pigspy
    2

pigspy   2 天前

@learningman

slatejs 是一个 web 端的富文本框架,这个数据结构翻译成 html 就是 `<p><img src=”./51″>来去也就剩下那么些人了。<p>`,
麻烦一点的办法就是要手写一个解析器,把 slatejs 的数据格式先转换为 html,然后再用安卓的 HTML 工具类来转换为 TextView 可以显示的数据结构
我想问问有没有办法直接在安卓端显示这种数据

wobuhuicode
    3

wobuhuicode   2 天前

这种*简单的方法就是直接用 webview 。使用 js 来解析 js 。*后导出回去给 java
pigspy
    4

pigspy   2 天前

@wobuhuicode
webview 估计是*后的备选方案,因为这是个发帖回帖的界面,原来整个模块都是 kotlin 写的,如果要换成 webview 的话,工作量太大了
wobuhuicode
    5

wobuhuicode   2 天前

@pigspy webview 只是用来解析,不要求它用来展示。解析完了数据返回 kotlin 层,销毁 webview
tanranran
    6

tanranran   2 天前

@pigspy #4 webview 和 kotlin 是两回事吧,建议 webview,自己写解析器的话,要考虑的问题太多了
zhanlanhuizhang
    7

zhanlanhuizhang   2 天前

等的就是这个时候,天降大任,你实现一个轮子。
ZoteTheMighty
    8

ZoteTheMighty   2 天前

直接 new 一个 webview 解析,这个 WebView 不需要展示, 只需要在 WebView 的 onLoadResource (好像是这个)里去拿解析的东西就好了, 然后退出销毁该 WebView 即可。
pigspy
    9

pigspy   1 天前 via Android

@wobuhuicode
明白你的意思了,非常感谢
ch2
    10

ch2   1 天前

这种是富文本,你写个 converter 转成安卓原生富文本元素就行了

aristolochic
    11

aristolochic   1 天前

Slate 的官方序列化示例就是 switch 判断 children.type 对应输出 html 片段+递归;期间只用到了 Text 类作为判断是否为文本节点结束递归的依据。
所以其实对着它的 spec 很快就能写出来,也不必要用它的 Text 类判断是否为文本,文本节点特征很明显嘛。
如果 case 不多的话,为了这个需求就启动一个 WebView 是不是有些 Overkill 了
pigspy
    12

pigspy   1 天前

@aristolochic

嗯,我现在就是照着官网的例子自己写了一个反序列化函数来转换成 html