¿Cómo puede el lado del servidor ser compatible con múltiples versiones de APP?

Los técnicos que han realizado productos de APP saben que las aplicaciones de APP pertenecen a una arquitectura C / S , por lo que es más problemático hacer compatibilidad con múltiples versiones, actualizaciones y otros procesos, no tan fácil como las aplicaciones web. Lo siguiente lo llevará a analizar varias situaciones comunes y métodos de afrontamiento: 
cambios menores o funciones recién agregadas. En 
este caso, la estructura de la base de datos y los programas API son generalmente compatibles con múltiples versiones, por lo que no es necesario forzar una actualización y pueden coexistir múltiples versiones. 
Intente agregar campos y API en el nivel de la base de datos, para que el nivel de la aplicación sea compatible. Por supuesto, el nivel de API también puede implementar múltiples versiones para proporcionar al mismo tiempo, pero esto no es necesario, 
pero lo más importante es que la estructura de la tabla a nivel de base de datos puede ser compatible.

 
o: 

Resumen: A 
nivel de base de datos, intente utilizar el principio de agregar nuevos campos en lugar de modificar campos para evitar afectar el negocio anterior
En el nivel del programa del servidor, la capa de API está diseñada para ser lo más flexible posible y la capa de acceso puede soportar el "enrutamiento" de manera óptima.

Hay varias ideas principales:

1. Agregue nuevos parámetros o agregue directamente métodos API en métodos API (también se puede entender como sobrecarga)
Se pueden manejar menos cambios de esta manera, pero más cambios serán más problemáticos, no use extensiones. 
2. El código se divide en diferentes versiones de sucursales y la API se implementa en diferentes subsitios . Accede a través de api.xx.com/V1 y api.xx.com/V2, o diferencia el acceso a través de apiV1.xxx.com, apiV2.xxx.com, etc. Por supuesto, también puede pasar el identificador al solicitar en diferentes versiones de la APLICACIÓN, y el servidor puede implementar el enrutamiento del servicio a través de Nginx o APIGateWay. 
Este tipo de intuición es más clara y la carga de trabajo será mayor, lo que aumentará una cierta cantidad de costos de mantenimiento y administración. 
El servicio atómico de back-end también debe admitir tantas versiones como sea posible.

Si se trata de un cambio importante y la estructura de datos subyacente no es compatible, solo se puede solicitar la actualización. 
Si se trata de una actualización forzada, no habrá problema de coexistencia de varias versiones, 
no habrá varios conjuntos de bases de datos y no habrá sincronización de datos. problema. 
Solo necesita hacer esto: 
antes de que Apple envíe para revisión, preparamos de antemano "la nueva versión de la estructura de datos y los scripts del objeto (vista, proceso, función, etc.), scripts o programas de migración, archivos de lanzamiento del programa", etc. 
1. Implemente una base de datos de prueba (entorno previo al lanzamiento) con nueva estructura de tabla y objetos
2. Implementar un nuevo sitio de API (diferentes nombres de dominio, se recomienda usar el número de versión en el nombre de dominio para distinguir. O usar diferentes subsitios), configurar la biblioteca de prueba de conexión y probar (sitio de API, DB, caché, ES, Nosql ... estos Hay un conjunto separado de entorno de prelanzamiento) 
3. Después de la revisión y aprobación de Apple, actualice el programa más reciente, espere a que la estructura de la base de datos llegue al entorno de producción y cambie la dirección del nombre de dominio de la dirección de API al entorno de producción (sitio web, antecedentes de administrador, etc. se pueden publicar directamente ), el operador hace clic en la operación de estantería en la tienda Apple y se completa la actualización del servidor (la APLICACIÓN tendrá un mensaje de actualización obligatorio). Por supuesto, este proceso puede provocar un breve tiempo de inactividad, por lo que generalmente se selecciona para operar de noche. 
4. Coloque el último APK de Android en nuestro sitio de descarga o sitio espejo con anticipación . Una vez que se haya lanzado el programa de servidor de 3 pasos, abra el mensaje de actualización obligatorio para la versión de Android en el fondo de la operación (descargue el APK de nuestro sitio de descarga o sitio espejo) potenciar). 
De esta forma, los usuarios de la versión anterior de Android se verán obligados a actualizar a la nueva versión sin afectar el uso. 
Al mismo tiempo, los operadores también deben distribuir y enumerar los últimos paquetes de apk en los principales mercados de Android, y proporcionar los otros canales más recientes para descargar, para evitar que los usuarios descarguen programas antiguos y luego solicitar actualizaciones obligatorias para afectar la experiencia.

  • Si se trata de un cambio importante, la estructura de la base de datos y el programa API no son compatibles y no desea realizar una actualización forzada, habrá un problema de coexistencia de varias versiones.

Luego, solo puede implementar dos conjuntos (o más versiones) de bases de datos , y para el contenido generado por el usuario y los requisitos de puntualidad, se requiere una sincronización bidireccional (o incluso multidireccional). El problema principal es que la base de datos tiene estado, lo cual es muy difícil. 
Esto es propenso a problemas, conflictos e inconsistencias de datos. 
Además, es difícil ser compatible cuando la estructura de los datos es diferente.

Por lo tanto, para cambios importantes, se agregan nuevas funciones de peso pesado al producto y el nivel comercial o la estructura de la tabla subyacente no son compatibles, se recomienda realizar una actualización obligatoria.

o:

2. Si se trata de un cambio importante y la estructura de datos subyacente es incompatible, solo se puede solicitar una actualización forzada. 
Si se trata de una actualización forzada, no habrá problemas de coexistencia de varias versiones, y 
no habrá varios conjuntos de bases de datos ni datos. Problema de sincronización. 
Solo necesita hacer esto: 
antes de que Apple envíe para revisión, preparamos de antemano "la nueva versión de la estructura de datos y los scripts del objeto (vista, proceso, función, etc.), scripts o programas de migración, archivos de lanzamiento de programas", etc. 
1. Implemente una base de datos de prueba (entorno previo al lanzamiento) con nueva estructura de tabla y objetos. 
2. Implemente un nuevo sitio de API (diferentes nombres de dominio, se recomienda usar el número de versión en el nombre de dominio para distinguir. O use diferentes subsitios. Diferencie por api.xx.com/V1 y api.xx.com/V2), configure Conéctese a la biblioteca de prueba y pruebe (sitio de API, DB, caché, ES, Nosql ... estos tienen un entorno de prelanzamiento independiente) 
3. Después de la aprobación de Apple, actualice el programa más reciente, la estructura de la base de datos, etc. al entorno de producción y cambie la dirección de API La dirección del nombre de dominio se cambia al entorno de producción (el sitio web, el fondo de administración, etc. se pueden publicar directamente), el operador hace clic en la operación de la estantería en la tienda Apple y se completa la actualización del servidor (la APLICACIÓN tendrá un mensaje de actualización obligatorio). Por supuesto, este proceso puede provocar un breve tiempo de inactividad, por lo que generalmente se selecciona para operar de noche. 
4. Coloque el APK de Android más reciente en nuestro sitio de descarga o sitio espejo por adelantado. Después de que se publique el programa de servidor de 3 pasos, abra el mensaje de actualización obligatorio para la versión de Android en el fondo de la operación (descargue el APK de nuestro sitio de descarga o sitio espejo) potenciar). 
De esta forma, los usuarios de la versión anterior de Android se verán obligados a actualizar a la nueva versión sin afectar el uso. 
Al mismo tiempo, los operadores también deben distribuir y enumerar los últimos paquetes de apk en los principales mercados de Android, y proporcionar los otros canales más recientes para descargar, para evitar que los usuarios descarguen programas antiguos y luego solicitar actualizaciones obligatorias para afectar la experiencia.

3. Si se trata de un cambio importante, la estructura de la base de datos y el programa API no son compatibles, 
y no desea hacer una actualización forzada, habrá un problema de coexistencia de múltiples versiones, por lo 
que solo podrá implementar dos conjuntos (o más versiones) de la base de datos, y para El contenido generado por el usuario y los requisitos de puntualidad son altos y se requiere una sincronización bidireccional (o incluso multidireccional). El problema central es que la base de datos tiene estado, lo cual es muy difícil. 
Esto es propenso a problemas, conflictos e inconsistencias de datos. 
Además, es difícil ser compatible cuando la estructura de los datos es diferente.

Por lo tanto, para cambios importantes, se agregan nuevas funciones de peso pesado al producto y el nivel comercial o la estructura de la tabla subyacente no son compatibles, se recomienda realizar una actualización obligatoria.

 

● La optimización de rendimiento de Tomcat8 más sólida de la historia

¿Por qué Alibaba puede resistir 10 mil millones en 90 segundos? - La evolución de la arquitectura distribuida de alta concurrencia del lado del servidor

Plataforma de comercio electrónico B2B: función de pago electrónico ChinaPay UnionPay

Aprenda el candado distribuido de Zookeeper, deje que los entrevistadores lo miren con admiración

Solución de bloqueo distribuido de Redisson con microservicio de pico de comercio electrónico de SpringCloud

Vea más artículos buenos, ingrese a la cuenta oficial, por favor, excelente en el pasado

Una cuenta pública profunda y conmovedora 0.0

Supongo que te gusta

Origin blog.csdn.net/a1036645146/article/details/109404598
Recomendado
Clasificación